我有一个带有两个表的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
答案 0 :(得分:1)
试试这个
SELECT * FROM table2 WHERE ID IN (SELECT ID FROM table1)
答案 1 :(得分: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