小编典典

如何编写一个MySQL查询,该查询返回一个临时列,该列包含有关与该行相关的项目是否存在于另一个表中的标志

sql

如何编写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

谢谢


阅读 167

收藏
2021-04-14

共1个答案

小编典典

   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
2021-04-14