我正在运行一个SQL查询,如下所示,为每个属性选择数据,LEFT JOIN主要从table1('main_table')为每个属性选择数据,如果table2也持有,也在表2中显示数据('houses')每个房产的数据。
但是我想只显示每个属性的结果1。 我在选择的字段之前尝试了DISTINCT的各种结果,但它没有用。
下面是SQL,还显示了返回数据的示例。 例如,128 Mayfield Road在表2中有2个条目,因此返回两次,但我只想显示每个房子一次。
非常感谢
SELECT main_table.housenumber, main_table.streetname, main_table.rent, houses.houseID, houses.path, houses.rooms
FROM main_table
LEFT JOIN houses ON main_table.housenumber = houses.housenumber
AND main_table.streetname = houses.streetname
533 Portswood Road 57 NULL NULL NULL
35 Ripstone Gardens 70 NULL NULL NULL
67 Kent Road 68 NULL NULL NULL
21 Bealing Close 65 NULL NULL NULL
75 Broadlands Road 76 NULL NULL NULL
7 Gordon Avenue 70 243 images_housing/GOR1.jpg 4
29 Broadlands Road 74 NULL NULL NULL
10 Westbrook Way 65 NULL NULL NULL
328C Burgess Road 85 NULL NULL NULL
10 Thackeray Road 68 NULL NULL NULL
128 Mayfield Road 70 311 images_housing/mayfield1.jpg 4
128 Mayfield Road 67 311 images_housing/mayfield1.jpg 4
答案 0 :(得分:0)
也许是这样的?
SELECT
main_table.housenumber,
main_table.streetname,
max(main_table.rent)
houses.houseID,
houses.path,
houses.rooms
FROM main_table
LEFT JOIN houses ON main_table.housenumber = houses.housenumber
AND main_table.streetname = houses.streetname
group by
main_table.housenumber,
main_table.streetname,
houses.houseID,
houses.path,
houses.rooms
答案 1 :(得分:0)
说房子有多个条目。如果您不关心在其他列中获得哪些可能的值,那么您可以使用备受诟病的MySQL扩展来分组:
Select
m.housenumber,
m.streetname,
m.rent,
h.houseID,
h.path,
h.rooms
From
main_table m
Left Join
houses h
on m.housenumber = h.housenumber and
m.streetname = h.streetname
Group By
m.housenumber,
m.streetname
大多数数据库都不允许你这样做,因为通常你会关心你得到的其他可能值。
答案 2 :(得分:0)
Distinct将检查所选的所有列是否都是唯一的,而不仅仅是其中一列。
这可能会有所帮助:SQL Group by & Max