SQL连接五个表

时间:2015-02-21 04:46:12

标签: mysql sql-server join

我实际上是尝试根据RegionID加入MySQL数据库中的五个表,RegionID是所有表中存在的唯一键。我是新手并使用以下左连接语句:

SELECT `tbllistings`.*,
       `tblgallery`.*,
       `tbltowns`.*,
       `tblregions`.*,
       `tblcontent`.*,
       `tbllistings`.*,
       `tblgallery`.*,
       `tbltowns`.*,
       `tblregions`.*,
       `tblcontent`.*
FROM   tbllistings
       LEFT JOIN `webspace_db`.`tblregions`
              ON `tbllistings`.`intregionid` = `tblregions`.`intregionid`
       LEFT JOIN `webspace_db`.`tblcontent`
              ON `tblregions`.`intregionid` = `tblcontent`.`intregionid`
       LEFT JOIN `webspace_db`.`tblgallery`
              ON `tblregions`.`intregionid` = `tblgallery`.`regionid`
       LEFT JOIN `webspace_db`.`tbltowns`
              ON `tblregions`.`intregionid` = `tbltowns`.`intregionid`  

我面临的问题是每个值都出现超过20次以上,我不确定为什么会发生这种情况。我真正想要的是简单地加入基于RegionID的所有表中的所有字段。

非常欢迎任何帮助和建议。非常感谢。

1 个答案:

答案 0 :(得分:1)

在每个tbllistings子句中使用intregionidON

SELECT `tbllistings`.*,
       `tblgallery`.*,
       `tbltowns`.*,
       `tblregions`.*,
       `tblcontent`.*,
       `tbllistings`.*,
       `tblgallery`.*,
       `tbltowns`.*,
       `tblregions`.*,
       `tblcontent`.*
FROM tbllistings
       LEFT JOIN `webspace_db`.`tblregions`
              ON `tblregions`.`intregionid` = `tbllistings`.`intregionid`
       LEFT JOIN `webspace_db`.`tblcontent`
              ON `tblcontent`.`intregionid` = `tbllistings`.`intregionid`
       LEFT JOIN `webspace_db`.`tblgallery`
              ON `tblgallery`.`regionid` = `tbllistings`.`intregionid`
       LEFT JOIN `webspace_db`.`tbltowns`
              ON `tbltowns`.`intregionid` = `tbllistings`.`intregionid`
相关问题