使用多列连接连接3个表

时间:2013-01-14 15:43:56

标签: mysql left-join inner-join

我正在努力为我需要的东西找到正确的语法,并想知道是否有人可以提供帮助?

我有3个表:用户,自有项目和商店项目

来自用户我需要获得用户ID和城市

从ownitems我需要获得userid和itemid

从shopitems我需要获得id和城市


拥有项目和用户的用户ID将是相同的

拥有项目的 itemid将与shopitems上的id相同

城市的商店和用户将是相同的


我所追求的是找出用户所在的城市,并将他们在该城市拥有的项目捆绑在一起。

我尝试使用的语法是

SELECT users.city, users.id, shopitems.city, shopitems.id, owneditems.itemid, owneditems.userid 
FROM users, shopitems, owneditems 
WHERE users.city = shopitems.city 
  AND owneditems.itemid = shopitems.it 
  AND users.id = owneditems.userid

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚您要尝试做什么,但是您是否尝试使用LEFT JOIN代替INNER JOIN

select u.city, 
    u.id, 
    s.city, 
    s.id, 
    o.itemid, 
    o.userid
from users u
left join owneditems o
    on u.id = o.userid
left join shopitems s
    on u.city = s.sity
    and o.itemid = s.itemid