SQL中的JOIN LEFT之后的情况

时间:2018-06-26 15:46:03

标签: mysql sql join left-join case

我在使用SQL查询时有些挣扎。我有两个表,并成功创建了一个查询,以使用LEFT JOIN显示所需的信息。现在,我想以某种方式编辑结果,根据行是否包含任何内容或设置为NULL,添加/转换信息。

这是我的查询:

SELECT users.user_uid, daten.tab_lkw, daten.feld0
FROM users
LEFT JOIN (SELECT DISTINCT daten.feld0, daten.tab_lkw FROM daten WHERE daten.feld0 = '2018-06-22' ) daten ON users.user_uid = daten.tab_lkw
WHERE users.user_uid NOT LIKE 'chef'
ORDER BY users.user_uid

我得到的结果如下:

result

现在是棘手的部分(至少对我而言)。我想添加一列,当feld0包含NULL时显示“否”,否则显示“ yes”。

无论我做什么,似乎都收到了SQL语法错误。老实说,我真的不知道在逻辑上放置CASE的位置。

有人有主意吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

这正是我从您的问题中了解的内容,希望它对您有用。我已经根据YesNo的值添加了一个列daten.feld0

SELECT users.user_uid, daten.tab_lkw, daten.feld0,
    CASE WHEN daten.feld0 IS NULL THEN 'No' ELSE 'Yes' END AS YesNo
FROM users
LEFT JOIN (SELECT DISTINCT daten.feld0, daten.tab_lkw 
            FROM daten 
            WHERE daten.feld0 = '2018-06-22' ) daten ON users.user_uid = daten.tab_lkw
WHERE users.user_uid NOT LIKE 'chef'
ORDER BY users.user_uid