我有3个表,它们有一个公共字段 user_id
增益表
+--------------------------+
|user_id | gain_count |
| 1 | 3 |
| 2 | 4 |
| 3 | 1 |
+--------------------------+
消耗表
+--------------------------+
|user_id |consume_count |
| 2 | 5 |
| 5 | 4 |
| 6 | 7 |
+--------------------------+
联接表
+--------------------------+
|user_id | join_count |
| 1 | 3 |
| 2 | 1 |
| 5 | 4 |
+--------------------------+
我想得到这样的输出:
输出:
+-----------+--------------+--------------+------------+
|user_id | gain_count |consume_count | join_count |
| 1 | 3 | 0 | 3 |
| 2 | 4 | 5 | 1 |
| 3 | 1 | 0 | 0 |
| 5 | 0 | 4 | 4 |
| 6 | 0 | 7 | 0 |
+-----------+--------------+--------------+------------+
是的,我希望这三个表合并为一个表,如果某个字段值为空,则将该字段值设为0。
如何编写mysql查询?
2条答案
按热度按时间rbpvctlc1#
你可以得到你想要的结果
UNION
在所有表中,为每个表中不存在的值选择0,然后按user_id
:输出:
nlejzf6q2#
下面介绍如何使用ansi标准sql:
自92发布以来,这一直是ansi标准的一部分,除了mysql以外的所有主要数据库都可以做到这一点。mysql必须这样做: