2017-07-02 61 views
-1

我有一個項目的表,它有一個user_email作爲它屬於誰的關鍵。通常我sql select然後從哪裏選擇

SELECT * FROM items WHERE user_email = $1 

我想添加一個表,其中包含用戶的朋友。然後,ID希望能夠通過第一做這樣

SELECT friends_email FROM friends WHERE user_email = $1 

東西於是我會回來的一組friends_email(S)來改變我的查詢得到什麼,我想繼續我的查詢像

SELECT * FROM items WHERE user_email = (any of the friends_emails from the friends query) 

但我不知道如何設置。我搜索了'嵌套查詢',一直沒能找到類似的東西。我可能正在努力去做不可能的事情,但似乎我應該能夠在邏輯上做到這一點。任何建議表示讚賞。由於

+0

你有這方面的任何代碼在你的問題,包括好嗎? – Serjio

+0

您正在使用哪個[DBMS](https://en.wikipedia.org/wiki/Database)? –

回答

0

我想你想使用標準加入這樣

SELECT i.* 
FROM friends f 
LEFT JOIN items i 
ON f.friends_email = i.user_mail 
WHERE f.user_email = $1 

參考: https://dev.mysql.com/doc/refman/5.7/en/join.html

+0

甜蜜的謝謝你。我結束了使用SELECT * FROM 項目 LEFT JOIN朋友 ON friends.friend_email = items.user_email WHERE friends.user_email = $ 1 –

+0

和你一樣,但我的初級開發者的頭腦更加清晰 –

+0

是的,它的可讀性,但你很快會進入多個連接和子選擇,這有助於習慣別名。 –