0

我有一个带有两个表的 mysql 数据库,它是一对多的关系。

table1有元素{A,B,C...,N}
table2有元素{A1,A2,...,AX,B1,B2,...BX,C1,C2,C3,...,CX,...,N1,N1,N3,...,NX}

我对表一进行了查询,它返回了元素的子集,即。{A,D,T} (这个子集可能很大,100 个元素)

现在我想查询第二个表以获取映射到第一个子集的所有元素,并且它们需要按两列排序。

当第一个查询的子集大小是动态的时,进行第二个查询的最佳方法是什么?我需要一个带有一堆 OR 的字符串吗?

SELECT * FROM table2 WHERE ID = A or ID = D ..... ORDER BY X,Y
4

2 回答 2

1

试试这个

SELECT * FROM table2 WHERE ID IN (SELECT ID FROM table1)
于 2012-11-20T17:57:44.573 回答
0
SELECT DISTINCT table2.*
FROM
  table2 INNER JOIN
  (Select ID from table1 where ..your conditions..) filtered_table1
  on table2.ID = filtered_table1.ID
ORDER BY table2.field1, table2.field2
于 2012-11-20T18:03:21.077 回答