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

0 sql

我努力让自己在2个表的联接-我们姑且称之为CATDRINK.我要做的是TypeDRINK表中只返回一个特定的" " ,否则返回NULL该表.也就是说,我仍然想要我CAT桌子上的所有行.

因此,如果我想要返回的饮料类型是" Milk",我查询的结果: -

Garfield    | Milk 
Tom         | Milk 
Hello Kitty | NULL
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,Garfield和Tom MilkDRINK表中有" " (他们可能还有一些其他值,比如" Wine"或" Beer")而且Hello Kitty没有" Milk"(因此NULL).

我一直在尝试解决这个问题,UNION或者UNION ALL在一个问题WHERE上加上一个问题Type(我在正确的道路上吗?)但是没有运气.

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

谢谢.

Lam*_*mak 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'
Run Code Online (Sandbox Code Playgroud)