Mysql 通过保留空值的名称更改列引用id

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

我有两张桌子。表1:

+-------+----------+---------+---------+
| 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上有一个错误。我知道,但不知道。好工具