mysql - 如何从此联接中获取“NULL”数据?
问题描述
我想加入两个表:
t_act
ID_ACT ACT
1 ACT1
2 ACT2
3 ACT3
4 ACT4
5 ACT5
t_work
NO ID_WORK ID_ACT ACT
1 A 1 ACT1
2 A 3 ACT3
我寻找的输出是:
NO ID_WORK ID_ACT ACT
1 A 1 ACT1
2 A 2 NULL
3 A 3 ACT3
3 A 4 NULL
4 A 5 NULL
我使用了 LEFT 或 RIGHT JOIN,但它没有产生所需的输出。
我的查询:
SELECT * FROM t_work LEFT OUTER JOIN t_act ON t_work.ID_ACT = t_act.ID_ACT
解决方案
看起来不错:
mysql> select * from t_act;
+--------+------+
| ID_ACT | ACT |
+--------+------+
| 1 | ACT1 |
| 2 | ACT2 |
| 3 | ACT3 |
| 4 | ACT4 |
| 5 | ACT5 |
+--------+------+
5 rows in set (0.00 sec)
mysql> select * from t_work;
+----+---------+--------+------+
| NO | ID_WORK | ID_ACT | ACT |
+----+---------+--------+------+
| 1 | A | 1 | ACT1 |
| 2 | A | 3 | ACT3 |
+----+---------+--------+------+
2 rows in set (0.00 sec)
输出:
mysql> select a.NO,a.ID_WORK, b.ID_ACT, a.ACT from t_act as b left
join t_work as a using (ID_ACT) order by ID_ACT;
+------+---------+--------+------+
| NO | ID_WORK | ID_ACT | ACT |
+------+---------+--------+------+
| 1 | A | 1 | ACT1 |
| NULL | NULL | 2 | NULL |
| 2 | A | 3 | ACT3 |
| NULL | NULL | 4 | NULL |
| NULL | NULL | 5 | NULL |
+------+---------+--------+------+
5 rows in set (0.02 sec)
但我不确定您想要的输出中的 NO 和 ID_WORK 列。
ID_ACT 2 不在表 t_work 中。因此,您在所需输出中的 NO / ID_WORK 列下也会有 NULL。你确定,你会在这些列上有 VALUES 吗?
推荐阅读
- python - 使用 Gekko 求解微分代数方程 (DAE) 问题
- python - 我通过 PRAW 有一个荒谬的列表,我想将其存储在数据库中。最终目标是制作一个 wordcloud
- r - 什么是特征以及如何在 RFormula 中解释
- azure-devops - 如何更改 Azure DevOps 中的自定义发布名称格式?
- godot - 我的 get_viewport().get_mouse_position() 不能正常工作 godot GDscript
- r - R,如何计算选定行的日期之间的操作?
- r - 用 Jitter 和固定轴标签整理 ggplot?
- python - 如何将输入变量插入到打印语句中?
- go - vim-go with golangci-lint and revive (replaceing deprecated go-lint): 对正确的配置感到困惑
- python - CSV文件中的抓取和存储(通过管理获得的文本)