3

例如,我有一张宠物桌和一张丢失宠物桌。我想通过 1 次加入和没有子选择来获得所有不会丢失的宠物。那可能吗?典型的连接只返回两个表中的结果。

4

4 回答 4

7

与标准 INNER JOIN 相比,您正在描述 OUTER JOIN。谷歌或检查你的文档——我相信你会找到很多例子。:)

SELECT * FROM pets AS p
LEFT OUTER JOIN lost-pets AS lp
ON p.name = lp.name
WHERE lp.id IS NULL

于 2008-12-15T22:04:13.027 回答
3
SELECT PETS.NAME
FROM PETS
   LEFT OUTER JOIN LOST_PETS
     ON PETS.PET_ID = LOST_PETS.PET_ID
WHERE LOST_PETS.PET_ID IS NULL;
于 2008-12-15T22:07:10.150 回答
2

是的,有可能说:

SELECT *
FROM pets LEFT OUTER JOIN pets-lost ON pets.id = pets-lost.id
WHERE pets-lost.id IS NULL;
于 2008-12-15T22:05:01.683 回答
-1

为什么不做 where not exists (select * from Lost ...)?它是一个子选择,但我不明白为什么这是一个问题。

于 2008-12-15T22:05:12.400 回答