最佳答案
首先创建一个 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/