我得到了2个具有几乎相同结构的表:
表products
:
-----------------------------
ID | OrderNo | Name | Size
-----------------------------
1 | 1000 | TShirt | S
-----------------------------
表
variants
:(关系:
variants
。MasterID
= products
。ID
)-------------------------------
ID | MasterID | OrderNo | Size
-------------------------------
1 | 1 | 1001 | M
-------------------------------
2 | 1 | 1002 | L
-------------------------------
现在我需要得到以下结果:
(我需要
products
中的每一行和variants
中的每一行)1000 | TShirt | S
------------------
1001 | TShirt | M
------------------
1002 | TShirt | L
...
我正在这样尝试:
SELECT p.OrderNo, p.Name, p.Size FROM products p
UNION
SELECT v.OrderNo, p.Name, v.Size FROM variants v
有一个更好的方法吗?
结果是正确的,但是有点慢(
products
中的13000行和variants
中的5000行)。 最佳答案
SELECT p.OrderNo, p.Name, v.Size
FROM products p
LEFT OUTER JOIN variants v
ON v.MasterID = p.ID
应该这样做。您可能希望使用INNER JOIN而不是LEFT OUTER JOIN;您的问题不清楚。
关于mysql - MySQL加入2张表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15250651/