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