mysql - 使用哪个连接 - mysql

标签 mysql

我有两张 table 。 (下面给出的是示例表。本来我有6个表)

表cpp;

----------------------
| name    |  spent1  |
----------------------
|john     |   32     |
|Johny    |   2      |
----------------------

表java

----------------------
| name    |  spent2  |
----------------------
|mary     |   42     |
|Johny    |   2      |
----------------------

输出我想要的样子

---------------------------------
| name    |  spent1  |  spent2  |
---------------------------------
|john     |   32     |  null    |
|Johny    |   2      |  2       |
|mary     |   null   |  42      |
---------------------------------

我尝试了很多方法但无法得到答案。有人可以建议我加入 mysql 以获得所需的输出吗?

最佳答案

您可以通过两个查询的联合来实现这一点

select Table1.name as name , Table1.spent as spent1 , Table2.spent as spent2 from Table1
Left JOIN Table2 on Table1.name = Table2.name
union
select Table2.name as name , Table1.spent as spent1 , Table2.spent as spent2 from Table2
Left JOIN Table1 on Table1.name = Table2.name
ORDER BY name

请注意,只需将 UNION 与 ALL 一起指定 - johny 的重复条目就会自动删除。

关于mysql - 使用哪个连接 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39996876/

相关文章:

mysql 查询优化(错误的索引?)避免文件排序

php - Codeigniter 中的多连接数据库

MySQL分组问题

Mysql性能查询

MYSQL通过选择要显示的元素来加入排序和分组

MySQL:连接多行并计算一个查询中的出现次数

mysql - 更新字段按顺序从另一个表获取值

mysql - InnoDB和MYISAM哪个好?

php - Mysql查询匹配多个可能的字符

mysql - 从服务器检索数据到本地返回 SQLSTATE[42000] : Syntax error or access violation: 1142 SELECT command denied to user