我的mysql数据库中有两个表。 table1:shoutbox table2:用户
我的表格看起来像这样
TABLE SHOUTBOX (id, name, title, user_id)
TABLE USERS (id, name, profile_image)
我想要做的是显示SHOUTBOX表中的所有内容 条件必须是USERS表中的profile_image ='2'所以我已经 试过这个:
SELECT shoutbox.id, shoutbox.name, shoutbox.title, shoutbox.user_id, user.profile_image
FROM shoutbox, users
WHERE users.profile_image = '2'
我的结果非常错误。 所以我是新手,所以请帮帮忙=)
答案 0 :(得分:3)
您从两个表中获取笛卡尔积,因为您缺少链接两个表的非常重要的条件。在WHERE
子句中添加此条件。
SELECT ... FROM ....
WHERE users.profile_image = '2' AND
shoutbox.user_ID = users.id
但我建议您使用SQL-92
语法
SELECT shoutbox.id,
shoutbox.name,
shoutbox.title,
shoutbox.user_id,
users.profile_image
FROM shoutbox INNER JOIN users ON shoutbox.user_ID = users.id
WHERE users.profile_image = '2'
答案 1 :(得分:3)
SELECT shoutbox.id, shoutbox.name, shoutbox.title,
shoutbox.user_id, user.profile_image
FROM shoutbox
inner join users
on user_id= users.id
WHERE users.profile_image = '2'
如果你是新手而不是获取有关加入的信息
已回答问题:What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN?
答案 2 :(得分:0)
SELECT shoutbox.id,
shoutbox.name,
shoutbox.title,
shoutbox.user_id,
user.profile_image
FROM shoutbox
join users
on shoutbox.user_id=users.id
WHERE users.profile_image = '2'