MySQL连接2个表

时间:2013-03-06 14:58:00

标签: mysql join

我有两张几乎相同结构的桌子:

products

-----------------------------
ID | OrderNo | Name   | Size
-----------------------------
1  | 1000    | TShirt | S
-----------------------------

variants
(关系:variantsMasterID = productsID

-------------------------------
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行)。

1 个答案:

答案 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;你的问题不清楚。