2011-08-12 48 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;