如何编写MySQL查询以实现如下所示的预期结果?
我有两个表:
TABLE_USERS: ID | Name | ... -------------------- 1 | Ash | 2 | Tim | 3 | Jim | 4 | Jay | 5 | Tom | TABLE_FLAGS: ID | Reason | ... ---------------------- 2 | ?? | 4 | ... |
我想知道如何编写一个查询,其结果包含以下几列:
DESIRED RESULT: ID | Name | Flagged ---------------------- 1 | Ash | false 2 | Tim | true 3 | Jim | false 4 | Jay | true 5 | Tom | false
我可以做:
SELECT TABLE_USERS.ID, TABLE_USERS.NAME FROM TABLE_USER
要获得前两列,但我不确定如何获得最后一列…
最后一列不直接对应于两个表之一中的一列;而是根据TABLE_FLAGS中是否存在该行id值的条目,为每行返回true或false
谢谢
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