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

するべきです。LEFT OUTER JOIN の代わりに INNER JOIN が必要になる場合があります。あなたの質問からは明らかではありません。

于 2013-03-06T15:38:45.170 に答える