我确定之前已经问过,但无法找到答案。
我有3张桌子OWNER,CAR,HOUSE
OWNER有2列id和名称
CAR有3列id,ownerId和cartype
HOUSE有4列id,ownerId,地址,国家/地区
我想编写一个SQL查询来获取瑞典的所有者名称,购物车类型和地址
这是棘手的部分。即使他们在瑞典没有房子,我也希望结果表中包含所有的所有者姓名和购物车类型。我可以在1个查询中获得所有内容,还是需要使用2个?该查询将如何显示?
答案 0 :(得分:2)
您应该可以使用简单的左连接来完成此操作:
SELECT O.name, C.cartype, H.address, H.country
FROM OWNER AS O
JOIN CAR AS C ON O.id = C.ownerid
LEFT JOIN HOUSE AS H ON O.id = H.ownerid AND Ucase(H.country) = "SWEDEN"
这将始终为您提供所有者及其车型的列表,此外,它还会列出那些恰好在瑞典拥有住宅地址的人员。
答案 1 :(得分:1)
首先,您需要加入表格,然后使用CASE
检查
SELECT o.* , c.* ,h.*,
(CASE WHEN h.county ='sweden' THEN h.county ELSE NULL END) AS HasCountry
FROM OWNER o
JOIN CAR c ON (c.ownerId =o.id)
JOIN HOUSE h ON (h.ownerId =o.id)