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

标签 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

谢谢

最佳答案

   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

关于mysql - 如何编写一个 MySQL 查询,该查询返回一个临时列,其中包含与该行相关的项目是否存在于另一个表中的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134558/

相关文章:

mySQL:当meta_key不存在时将其插入表中

javascript - 登录表单不与 MySQL 交互

php - 如果记录包含撇号,则无法将记录添加到 MySQL

mysql - 通过阅读进度表中的select查询计算阅读页数

PHP + MySQL + HTML 在表格中显示不同的信息

mysql - 尝试使用参数创建简单过程时出错 - 需要标识符

php - 合并三个表之间的数据

mysql - 创建表时转换日期和/或时间时转换失败

mysql - 使用插入编辑列中的数据?

mysql - 想在 IN 子查询中使用 LIMIT,如何解决?