2011-08-12 46 views
0

嗨我有一個問題是如何從一個表中獲取信息,然後用這些信息例如一個名稱,然後查詢數據庫,告訴我,表2連接兩個表放在一個數據庫

值因此,在短期我有一個朋友去的系統,但我不能得到的圖片用戶,因爲它是在另一個表。我可以得到他的名字,但我無法得到他的照片。那麼,你如何得到他的圖片在表1中,名稱是在表2中。

table 1 
name Users 

id username password  Email   picture     theme 
1  bob  dabsd2323ty  [email protected]  uploads/adsda.png  themes/theme1.png 
2  fred  dabsd2323ty  [email protected]  uploads/adsda.png  themes/theme1.png 


table 2 
name Friends 

id sender receiver checked 
1  bob  fred  2 

2表示他已檢查並接受它。

,所以我可以從表2中的名字,但我不知道如何從表1

+0

對不起,如果我問,但兩個不同的數據庫中的兩個表? – dave

+0

他們在同一個數據庫 – ryanc1256

+0

好的,對不起,我誤解了句子「...然後查詢其他數據庫,告訴我表2中的值。」 – dave

回答

2

得到的圖片用戶這是一個典型的連接查詢。你想要誰的照片,發件人還是收件人?讓我們得到的圖片爲接收器:

SELECT sender, receiver, picture 
FROM Friends JOIN Users ON(receiver = username) 
WHERE checked = 2; 

如果你只想要一個特定的用戶,添加條件sender = 'Jim'或類似的東西來查詢。

您還可以參加一個表兩次。假設你想發送方的圖像接收器:

SELECT sender, receiver, U1.picture AS senderpicture, U2.picture AS receiverpicture 
FROM Friends 
    JOIN Users AS U1 ON(sender = U1.username) 
    JOIN Users AS U2 ON(receiver = U2.username) 
WHERE U2.checked = 2; 
+0

我真的不明白爲什麼你選擇朋友的照片? – ryanc1256

+0

我不是。我正在從「朋友JOIN用戶」中選擇! –

+0

這不僅僅是「朋友」......它是「朋友」加入到「用戶」中,在護腕中表達的條件得到滿足。 – dave

1
SELECT T1.PICTURE 
FROM TABLE2 T2 
JOIN TABLE1 T1 
ON T1.USERNAME = T2.SENDER 
+0

+1。你提供了一個很好的答案,但你肯定有一個帽子的事情,不是嗎? :d – Shef

0

你需要一個連接,可能是左連接:

SELECT的cols,你,希望朋友LEFT加入用戶 Friends.username = Users.username;