我正在使用MySQL
并拥有以下SQL表
Table1
id | var1 | var2 | var3
Table2
id | var4 | var5
我运行查询
SELECT id, var1 from Table1 where var3 = X
这将返回多个值。
然后我想
SELECT var4 from Table2 where id = Y
对于从第一个查询返回的每个ID。
最好的方法是什么?可以在1份声明中完成吗?
修改
为了澄清,我还需要根据上面的第一个查询返回var1
中的Table1
。
答案 0 :(得分:1)
很多方法可以实现这一目标。
SELECT a.id, var4, B.Var1
FROM Table2 A
INNER JOIN Table1 B
on A.ID = B.ID
WHERE var3 = X
and ID = Y
取决于索引,数据表设计/设置的数量。这三者中的任何一个都可能是" Best" 存在通常是最快的,如果您需要其他信息,连接可以解决某些问题。
阅读联接:http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
答案 1 :(得分:0)
如何将两个查询合并为一个:
SELECT var4
FROM Table2
WHERE id IN
(
SELECT id
FROM Table1
WHERE var3 = X
)