我如何编写MySQL查询以实现下面显示的所需结果?
我有两张桌子:
TABLE_USERS:
ID | Name | ...
--------------------
1 | Ash |
2 | Tim |
3 | Jim |
4 | Jay |
5 | Tom |
TABLE_FLAGS:
ID | Reason | ...
----------------------
2 | ?? |
4 | ... |
Run Code Online (Sandbox Code Playgroud)
我想知道如何编写一个产生以下列结果的查询:
DESIRED RESULT:
ID | Name | Flagged
----------------------
1 | Ash | false
2 | Tim | true
3 | Jim | false
4 | Jay | true
5 | Tom | false
Run Code Online (Sandbox Code Playgroud)
我可以:
SELECT TABLE_USERS.ID, TABLE_USERS.NAME
FROM TABLE_USER
Run Code Online (Sandbox Code Playgroud)
要获得前两列,但我不知道如何获得最后一列...
最后一列不直接对应于两个表之一中的列; 相反,对于每一行,它返回true或false,基于TABLE_FLAGS中是否存在该行id值的条目
谢谢
SELECT tu.ID,
tu.NAME,
CASE WHEN tf.ID IS NOT NULL THEN 'true' ELSE 'false' END AS Flagged
FROM TABLE_USER tu
LEFT OUTER JOIN TABLE_FLAGS tf ON tu.ID = tf.ID
Run Code Online (Sandbox Code Playgroud)