【发布时间】:2018-02-19 08:45:33
【问题描述】:
我是 SQL 新手,但我正在尝试连接两个表。但是,它并没有像我预期的那样工作。这是在 Postgresql 中。
这是我要加入的表格。
我的桌子
SELECT * FROM houses;
id | name | address | picture
----+----------------+-------------+------------
1 | House 1 | 440 S 3rd W | long-link2.jpg
2 | House 2 | 538 S 5th E | long-link.jpg
SELECT house_id, trunc(avg(score), 1) FROM house_reviews GROUP BY house_id;
house_id | trunc
----------+-------
1 | 3.0
2 | 3.0
我的 JOIN 语句
尝试 1(有效)
SELECT * FROM houses
LEFT JOIN (SELECT house_id, trunc(avg(score), 1) FROM house_reviews GROUP BY house_id) AS r
ON houses.id = r.house_id;
尝试 2(不起作用)
SELECT id, name, address FROM houses
LEFT JOIN (SELECT house_id, trunc(avg(score), 1) FROM house_reviews GROUP BY house_id) AS r
ON houses.id = r.house_id;
两者唯一的区别是我没有在尝试2中选择图片。但是尝试2似乎根本没有加入。而是显示
id | name | address
----+----------------+-------------
1 | Tuscany | 440 S 2nd W
2 | Mountain Lofts | 538 S 2nd W
意味着它未能加入,而是仅显示房屋表。
我的问题
我很困惑为什么第二个表中的连接失败,因为我只删除了一个任意列(图片)。
有没有办法可以将两个表连接在一起,但也可以从“房屋”表中排除图片列?
谢谢!
【问题讨论】:
标签: postgresql