例如我有2个表:
place facility
|placeID|address|price| |facilityID|placeID|facilityname|
| 1 | add1 | pr1 | | 1 | 1 | internet |
| 2 | add2 | pr2 | | 2 | 1 | TV |
| 3 | 2 | internet |
我的程序是选择工具,然后返回特定值的行,例如,我想选择internet
和tv
,然后它将返回place with add1 not add2
。如何使用查询执行此操作?
编辑: 通常输出会是这样的:
|placeID|address|price|facilityname|
| 1 | add1 | pr1 | internet |
| 1 | add1 | pr1 | TV |
我的预期出局将是:
|placeID|address|price|
| 1 | add1 | pr1 |
所以我想我想合并具有相同值的行,这是可能的吗?
答案 0 :(得分:0)
试试这个
SELECT DISTINCT place.placeID, place.address, place.price
FROM facility
INNER JOIN place ON facility.placeID = place.placeID
WHERE facilityname IN ('internet','TV')
答案 1 :(得分:0)
如果您只想要同时拥有互联网和电视服务的地址,您只需按地点分组并计算该地点附加的不同服务。
SELECT p.address
FROM place p
JOIN facility f
ON p.placeID = f.placeID
WHERE f.facilityname IN ('TV', 'internet')
GROUP BY p.address
HAVING COUNT(DISTINCT f.facilityname) = 2