mysql - 根据主键合并两个表

标签 mysql sql

我有两个表,有些条目相同,例如 表 A:

ID         value        type
1          1            2
2          3            2
3          3            2

表 B:

ID        value        type
2          3            1
3          3            1 
4          1            1

我想合并它们,使结果表看起来像

表 C:

ID        value        type
2          3            2
3          3            2
4          1            1

即去掉A表中不存在的行,显示A表中A表类型重复的行,同时显示A表中不存在的行。

到目前为止,我已经完成了 UNION 命令来删除重复项

 select * from table A union select * from table B

但是如何从表A中获取类型呢?可以这样做吗,还是我必须单独更新它们。

最佳答案

你可以用 LEFT JOIN 来完成:

SELECT b.id,b.value,
       COALESCE(a.type,b.type) as type
FROM TableB b
LEFT JOIN TableA a
 ON(a.id = b.id)

关于mysql - 根据主键合并两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40468978/

相关文章:

java - 的用法?在准备好的声明中

mysql - Mysql 中的嵌套情况

sql - 从执行计划中分解 XML

mysql - 使用存储过程中的连接将 mysql 更新转换为 sql server

php - Codeigniter activerecord 选择 null 到虚拟列中

php - MySQL:全文索引以前的记录?

php - php 代码中的正确信息未插入到 Sql db 中

PHP 文本作为 echo 中的超链接

mysql - Jasper ireport查询设计

sql - 通过分组和检查非空将多行合并为一行