动态mysql查询两个表

时间:2012-11-20 17:55:48

标签: mysql sql

我有一个带有两个表的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

2 个答案:

答案 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