在一个数据库中将两个表连接在一起

时间:2011-08-12 08:07:15

标签: php mysql

嘿伙计我有一个问题是如何从一张桌子获取信息,然后使用该信息,例如一个名称,然后查询数据库,告诉我表2中的值。

所以简而言之,我有一个朋友系统,但我不能为该用户获取图片,因为它在另一个表中。我可以得到他的名字,但我无法得到他的照片。那么如何得到表1中的图片,名称在表2中。

table 1
name Users

id    username  password       Email          picture                   theme  
1      bob       dabsd2323ty     hjas@hsdf      uploads/adsda.png       themes/theme1.png
2      fred        dabsd2323ty     hjas@hsdf      uploads/adsda.png       themes/theme1.png


table 2
name Friends

id  sender    receiver  checked  
1     bob      fred       2

2表示他已经检查并接受了它。

所以我可以从表2中获取名称,但我不知道如何从表1中获取用户的图片

3 个答案:

答案 0 :(得分:2)

这是一个经典的JOIN查询。你想要谁的图片,发送者或接收者?让我们来看看接收器的图片:

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;

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要加入,可能是左连接:

SELECT cols,you,want FROM Friends LEFT JOIN Users ON  Friends.username = Users.username;