Mysql 通过保留空值的名称更改列引用id
我有两张桌子。表1:Mysql 通过保留空值的名称更改列引用id,mysql,sql,database,reference,null,Mysql,Sql,Database,Reference,Null,我有两张桌子。表1: +-------+----------+---------+---------+ | ID | name | refT1 | refT2 | +-------+----------+---------+---------+ | 1 | Name1 | 1 | 2 | | 2 | Name2 | 2 | 4 | | 3 | Name3 | NULL | N
+-------+----------+---------+---------+
| ID | name | refT1 | refT2 |
+-------+----------+---------+---------+
| 1 | Name1 | 1 | 2 |
| 2 | Name2 | 2 | 4 |
| 3 | Name3 | NULL | NULL |
| 4 | Name4 | 3 | NULL |
+-------+----------+---------+---------+
表2:
+-------+--------+
| ID | name |
+-------+--------+
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
| 4 | A4 |
+-------+--------+
我需要这张桌子
+-------+----------+---------+---------+
| ID | name | A1 | A1 |
+-------+----------+---------+---------+
| 1 | Name1 | A1 | A2 |
| 2 | Name2 | A2 | A4 |
| 3 | Name3 | NULL | NULL |
| 4 | Name4 | A3 | NULL |
+-------+----------+---------+---------+
我编写了一个sql命令,但是具有空值的行消失了,我想保留它们。希望此查询能够帮助您:
SELECT ID, name,
Case when Table_1.refT1 is null then NULL else Table_2.name end as A1,
Case when Table_1.refT2 is null then NULL else Table_2.name end as A2
from
Table_1
inner join
Table_2
on Table_1.ID = Table_2.ID
希望此查询能够帮助您:
SELECT ID, name,
Case when Table_1.refT1 is null then NULL else Table_2.name end as A1,
Case when Table_1.refT2 is null then NULL else Table_2.name end as A2
from
Table_1
inner join
Table_2
on Table_1.ID = Table_2.ID
Do
左连接
两次:
select t1.id, t1.name, t2.name as a1, t3.name as a2
from table1 t1
left join table2 as t2 on t1.refT1 = t2.id
left join table2 as t3 on t1.refT2 = t3.id
(左连接包括那些消失的“空行”)Do
左连接两次:
select t1.id, t1.name, t2.name as a1, t3.name as a2
from table1 t1
left join table2 as t2 on t1.refT1 = t2.id
left join table2 as t3 on t1.refT2 = t3.id
(左联接将包括那些消失的“空行”)结果中不能有两次列名A1。结果中不能有两次列名A1。感谢您的回答,但表_1.ID=表_2.ID上有错误。我知道,但不知道。很好的工具提示您的答案,但表_1.ID=表_2.ID上有一个错误。我知道,但不知道。好工具