2015-02-21 4 views
0

Я фактически пытаюсь присоединиться к пяти таблицам в базе данных MySQL на основе RegionID, который является уникальным ключом, присутствующим во всех таблицах. Я новичок в этом и используя следующий левый присоединиться заявление:SQL Join for Five Tables

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.

Любая помощь и предложения приветствуются. Большое спасибо.

+0

Это означает, что вам нужно больше данных фильтра, используя условие математического значения столбца .... добавьте по одной таблице и получите отличное значение. – Ajay2707

+0

Попробуйте использовать 'INNER JOIN' вместо' LEFT JOIN'. – Rigel1121

+0

INNER JOIN может избавиться от выходных строк, которые имеют все NULL из-за недостающих строк, но не будут дедуплироваться. DISTINCT будет выводить строки. Очистка запроса избавится от дублированных _columns_. –

ответ

1

Использование tbllistings. intregionid в каждой статье ON.

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` 
+0

Ригель попробовал, но в том же случае. Я даже использую Inner Join, но неважно, я возвращаю те же значения снова и снова. –