通过他的名字更改列引用 ID 保持 NULL 值
Change column refence id by his name keeping NULL values
我有两个 table。 Table1:
+-------+----------+---------+---------+
| ID | name | refT1 | refT2 |
+-------+----------+---------+---------+
| 1 | Name1 | 1 | 2 |
| 2 | Name2 | 2 | 4 |
| 3 | Name3 | NULL | NULL |
| 4 | Name4 | 3 | NULL |
+-------+----------+---------+---------+
和Table 2:
+-------+--------+
| ID | name |
+-------+--------+
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
| 4 | A4 |
+-------+--------+
我需要这个table
+-------+----------+---------+---------+
| 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
做LEFT JOIN
两次:
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
(Left join是把消失的都包括进来"null rows")
我有两个 table。 Table1:
+-------+----------+---------+---------+
| ID | name | refT1 | refT2 |
+-------+----------+---------+---------+
| 1 | Name1 | 1 | 2 |
| 2 | Name2 | 2 | 4 |
| 3 | Name3 | NULL | NULL |
| 4 | Name4 | 3 | NULL |
+-------+----------+---------+---------+
和Table 2:
+-------+--------+
| ID | name |
+-------+--------+
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
| 4 | A4 |
+-------+--------+
我需要这个table
+-------+----------+---------+---------+
| 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
做LEFT JOIN
两次:
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
(Left join是把消失的都包括进来"null rows")