MySQL JOIN 表返回 NULL 或 0

标签 mysql sql

我正在尝试创建 JOIN 一些表。这个想法是显示选定的 0 0r 1.name 相同的名称。如果不是,值应该为 NULL 或 0,否则为 1。

示例数据

表 1

ID   NAME
------------
1    Zebra

2    Monkey

3    Lion

4    Rabbit

表 2

ID  ID_table1  Name_table1
--------------------------
1       1        ZEBRA   
2       3        Lion   
3       3        Lion
4       1        Zebra
5       2        Monkey
6       3        Lion  
7       4        Rabbit

如果我加入表并从表 2 中选择值,其中 Id 为 2

结果

ID    NAME   Selected
--------------------- 
1    Zebra      0
2    Monkey     0
3    Lion       1  
4    Rabbit     0

最佳答案

需要使用LEFT JOINCASE

SELECT T1.ID, NAME , case when T2.ID_Table1 is null then 0 else 1 end as value
FROM
Table1 T1
LEFT JOIN( select ID_table1 
  FROM Table2
  where ID =2
 ) T2
on T1.ID = T2.ID_table1

关于MySQL JOIN 表返回 NULL 或 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26351537/

相关文章:

javascript - 表单不将数据保存到 mySQL 表中

MySQL制作二维表

mysql - 将连接返回到 knex 数据库池

mysql - SQL - 按小时计算的唯一值

sql - 空间优化查询运行速度比预期慢

mySQL,sql 文件 netbeans

php - 通过Yii中的多对多关系查找不相关的记录

mysql - 为什么 GROUP BY with LEFT JOIN 会改变这个 MySQL 查询的结果?

mysql - 始终将设置的秒/分钟/小时舍入为 00 mysql

sql - 名+姓+生日组合是否足够独特?