我有两张几乎相同结构的桌子:
表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行)。
答案 0 :(得分:0)
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;你的问题不清楚。