gpt4 book ai didi

php - 如何在SQL中合并不同表的数据

转载 作者:行者123 更新时间:2023-11-29 11:57:17 24 4
gpt4 key购买 nike

我有3个不同的表,我想合并不同表中相同发票号的数据

我尝试了一些代码,但有不同的输出。我的示例表

表1

enter image description here

表2

enter image description here

表3

enter image description here

我的查询和输出

enter image description here

我的期望输出

enter image description here

最佳答案

首先创建一个 View 来混合表1和表2

CREATE VIEW `view 1 2` AS
SELECT `table 1`.invoice_no, `table 1`.shoe_brand, `table 2`.clothing_brand
FROM `table 1` LEFT JOIN `table 2`
ON `table 1`.invoice_no = `table 2`.invoice_no
UNION
SELECT `table 2`.invoice_no, `table 1`.shoe_brand, `table 2`.clothing_brand
FROM `table 1` RIGHT JOIN `table 2`
ON `table 1`.invoice_no = `table 2`.invoice_no;

然后创建一个 View 以混合“ View 1 2”与“表 3”

CREATE VIEW `view 1 2 3` AS
SELECT `view 1 2`.invoice_no, `view 1 2`.shoe_brand, `view 1 2`.clothing_brand, `table 3`.watch_brand
FROM `view 1 2` LEFT JOIN `table 3`
ON `view 1 2`.invoice_no = `table 3`.invoice_no
UNION
SELECT `table 3`.invoice_no, `view 1 2`.shoe_brand, `view 1 2`.clothing_brand, `table 3`.watch_brand
FROM `view 1 2` RIGHT JOIN `table 3`
ON `view 1 2`.invoice_no = `table 3`.invoice_no

现在是一个简单的 SELECT * FROM view 1 2 3;返回您的结果,并将工作留给 MySQL。

+------------+------------+----------------+-------------+
| invoice_no | shoe_brand | clothing_brand | watch_brand |
+------------+------------+----------------+-------------+
| 1 | Nike | GAP | Omega |
| 2 | Addidas | OLD NAVY | NULL |
| 3 | Sperry | NULL | NULL |
| 5 | NULL | Puma | Seiko |
| 4 | NULL | NULL | Casio |
+------------+------------+----------------+-------------+

关于php - 如何在SQL中合并不同表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com