mysql - Join多个表显示3个或更多表的数据

标签 mysql join

我有如下三个表,

Table1-
num |info
----------
1   |aaaaa  
2   |bbbb
3   |ccc
3   |ccc
4   |dddd

Table2-
num |info
----------
1   |aaaaa
3   |ccc
4   |dddd
5   |eeee
6   |ffff

Table3-
num |info
----------
1   |aaaaa
6   |ffff
2   |bbbb

我要得到的结果是,

Result-
num |info   num |info   num |info
----------- ----------- ----------
1   |aaaaa  1   |aaaaa  1   |aaaaa
2   |bbbb   NULL|NULL   2   |bbbb
3   |ccc    3   |ccc    NULL|NULL
3   |ccc    3   |ccc    NULL|NULL
4   |dddd   4   |dddd   NULL|NULL
NULL|NULL   6   |ffff   6   |ffff

Result 2-
num |info   num |info   num |info
----------- ----------- ----------
1   |aaaaa  1   |aaaaa  1   |aaaaa
2   |bbbb   NULL|NULL   2   |bbbb
3   |ccc    3   |ccc    NULL|NULL
3   |ccc    3   |ccc    NULL|NULL
4   |dddd   4   |dddd   NULL|NULL
NULL|NULL   5   |eeee   NULL|NULL
NULL|NULL   6   |ffff   6   |ffff

如果有一种方法可以检索给定结果中的任何一个,那就太好了 :) 非常感谢 :) .. 我试过像这样使用完全连接,

    SELECT *
    FROM tbl_1 AS a
    LEFT OUTER JOIN tbl_2 AS b ON a.num = b.num
    UNION
    SELECT *
    FROM tbl_1 AS a
    RIGHT OUTER JOIN tbl_2 AS b ON a.num = b.num

但它只适用于 2 个表,如果完全连接是解决方案如何执行此操作?如果不是,我如何从给定的三个表中得出我想要的结果?

我尝试搜索,但没有人帮助执行此任务。

然后我问了这个问题 Join multiple tables (Special condition)但它没有帮助..认为可能不清楚这就是为什么我再次发布 :)

最佳答案

我认为您之前在下面的问题中发布的内容应该很好用:-

  SELECT  a.num numA, a.info infoA,
    b.num numB, b.info infoB,
    c.num numC, c.info infoC
 FROM    table1 a
    LEFT JOIN table2 b
       ON a.num = b.num
    LEFT JOIN table3 c
       ON a.num = c.num
 ORDER BY a.num

关于mysql - Join多个表显示3个或更多表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046934/

相关文章:

python 逐一迭代mysql字段的行

MySQL - mysqldump --routines 仅导出 1 个存储过程(按名称)而不是每个例程

mysql - 如何计算两行之间的差异

R:使用第二个表合并+更新表的有效方法,其中来自相同列名的值填充 NA

performance - 在 R 中合并/连接 data.frames 的最快方法是什么?

php - 使用纬度经度距离从数据库检索记录 mysql join

mysql - var schemaAttributes = this.waterline.schema[this.identity].attributes ** Waterline 0.10.0 - Sails v0.9.16

java - 如何配置 Spring Boot 以使用两个数据库?

MySQL JOIN 不断超时

MySQL 用空格连接列