select * from workers where id = uid and age = uage` -- sql1
select uid,uage from users where uage>20` -- sql2
我想使用sql2
作为sql1
的条件下,即uid
和sql1
使用uage
被来自sql2
。如何完成此查询?
select * from workers where id = uid and age = uage` -- sql1
select uid,uage from users where uage>20` -- sql2
我想使用sql2
作为sql1
的条件下,即uid
和sql1
使用uage
被来自sql2
。如何完成此查询?
您可以加入两个表:
SELECT w.*
FROM workers w
INNER JOIN users u
ON w.id = u.uid AND w.age = u.uage
WHERE u.uage > 20
他或她想要使用sql2作为sql1的条件而不是'INNER JOIN' –
@MarkYao - 并且使用这个'JOIN',操作符获得了该结果。 – Lamak
你可以嵌套查询使用临时表。第一个查询创建第二个查询的临时表。
您可以使用子查询。
代码:
select * from workers where (id,age) =(select uid,uage from users where uage>20);
@Wiseguy在投票之前,您需要了解更多关于mysql子查询的知识。 –
我的问题是修辞。我实际上并没有问。我的意思是说,如果子查询返回多行,它将不起作用。但是,如果将'='更改为'IN',它应该可以工作。 – Wiseguy
下一次添加MySQL标签。 :) –
我们当然可以帮助你的语法,但我不确定你真的想在这里返回 - 如果你查询的ID为什么你需要一个年龄? – n8wrl
了解[SQL连接](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)。 – eggyal