1

我得到了 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

有一个更好的方法吗?结果是正确的,但有点慢( 13000 行products和 5000 行variants)。

4

1 回答 1

0
SELECT p.OrderNo, p.Name, v.Size 
FROM products p
LEFT OUTER JOIN variants v
ON v.MasterID = p.ID

应该这样做。您可能需要一个内部联接而不是一个左外部联接;从你的问题不清楚。

于 2013-03-06T15:38:45.170 回答