mysql - 如何选择两个表中的数据

标签 mysql

这个问题有点拗口。

通过例子表达这个问题

这里有两个表:

table1
id1    col1
 1       a
 2       b
 3       c
---------------------
table2
id2    col2
 1       b
 2       c
 3       d

如果我这样做:select * from table1 t inside join table2 tt on t.col1=tt.col2 我会得到这样的结果:

id1   col1   id2    col2
  2      b     1       b
  3      c     2       c

问题来了

我想要得到这样的结果

 id1   col1   id2    col2
   1      a  null    null
null   null     3       d

最佳答案

您通常会使用完全外连接,但在 mysql 中您可以尝试以下操作:

SELECT * FROM table1 t
LEFT JOIN table2 tt ON t.col1=tt.col2
UNION
SELECT * FROM table2 tt
LEFT JOIN table1 t ON t.col1=tt.col2

关于mysql - 如何选择两个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277321/

相关文章:

java - 从客户端应用程序查询 MySQL

MySql 从 2 个表中选择具有多个子产品的产品

mysql - 如何在不更改配置文件的情况下将 mysql character_set_database 设置为 utf8mb4?(因为我无权访问这些文件)

mysql - Aruba-MySQL : can't create/change table to engine=INNODB

mysql - YII2获取10年5年后的日期

php - 每次都得到相同的答案

mysql - ManyToMany @Embeddable MySQLIntegrityConstraintViolationException : Cannot add or update a child row: a foreign key constraint fails

mysql - PhpMyAdmin,程序保存在文件系统上

如果太长,Mysql 会转换整数

mysql - 如果我尝试在phpmyadmin中上载音频文件,则显示错误#2006,应该提到的数据类型是什么