SQL查询:在第二个表中返回特定值,否则返回NULL

时间:2014-02-04 15:53:41

标签: sql

我正在尝试在2个表格上加入 - 我们称之为CATDRINK。我要做的是从Type表中仅返回特定的“DRINK”,否则返回该表的NULL。也就是说,我仍然需要CAT表中的所有行。

因此,如果我想要返回的饮品类型是“Milk”,那么我的查询结果是: -

Garfield    | Milk 
Tom         | Milk 
Hello Kitty | NULL

在上面的示例中,加菲猫和汤姆在Milk表格中有“DRINK”(他们可能还有其他一些值,例如“Wine”或“{{1} })和Hello Kitty没有“Beer”(因此Milk)。

我一直在努力解决此问题,并在“NULL”上结合UNION进行了一些UNION ALLWHERE次查询(我是否在正确的道路上? )但没有运气。

请有人能指出我正确的方向吗?

感谢。

1 个答案:

答案 0 :(得分:5)

使用LEFT JOIN

SELECT C.Cat, D.Drink
FROM CAT AS C
LEFT JOIN DRINK AS D
    ON C.CatId = D.CatId
    AND D.Drink = 'Milk'