16

我很难构建三重连接查询。

我有三张桌子:

房子:

house ID(key) | Address | personID |

人:

personID (key) | Name | Address | 

图片: //房子

imageID (key) | personID | url | 

我想将结果限制为5

我想查询房屋地址-es(主要),它是业主姓名和地址,以及业主的一张照片。

注意:每个人最多有 3 张图像(图像表中的 3 行),但只需要一张,不管是哪一张。

4

3 回答 3

38
SELECT h.Address, p.Name, p.Address as OwnerAddress, i.url FROM house AS h
INNER JOIN person AS p ON p.personID = h.personID
INNER JOIN images AS i ON i.personID = p.personID
GROUP BY h.houseID

应该为你工作。

于 2012-08-31T21:32:01.563 回答
4

也许你最好使用 LEFT OUTER JOIN,比如

SELECT
   h.Address  as `h_address`,
   p.Name     as `p_name`,
   p.Address  as `p_address`,
   i.url      as `i_url`
FROM house AS `h`
   LEFT OUTER JOIN person AS `p` ON (p.personID = h.personID)
   LEFT OUTER JOIN images AS `i` ON (p.personID = i.personID)
GROUP BY h.houseID

它还会显示没有注册图像的房屋。

于 2013-03-01T19:47:28.873 回答
-1

连接三个表

IE:

select i_f.*, i_f_d.* , i_f_c.creator_name 
  from indent_form i_f 
  join indent_form_details i_f_d on i_f.id=i_f_d.ind_id 
  join indent_form_creator i_f_c on i_f.user_id=i_f_c.id

indent_form table 1,
indent_form_details table 2,
indent_form_creator table 3,
于 2017-01-04T08:54:57.147 回答