有誰能告訴我爲什麼以下不行?它抱怨兩個選擇之間的連接關鍵字附近有語法錯誤。加入兩條select語句
SELECT *
FROM (select * from orders_products inner JOIN orders ON orders_products.orders_id = orders.orders_id where products_id = 181)
as A
join
SELECT *
FROM (select * from orders_products INNER JOIN orders ON orders_products.orders_id = orders.orders_id where products_id = 180)
as B
on A.orders_id=B.orders_id
基本上我的第一SELECT
翻出所有特定產品訂單的相關信息從一個表,並取出從另一個訂購的數量,並把它們組合在一起。第二個SELECT
爲另一個產品做同樣的事情。現在
,我有
_______A_________ _______B_________
O_ID P_ID Q O_ID P_ID Q
1 180 3 1 181 11
2 180 9 2 181 6
3 180 5 3 181 3
,並使用另一個加盟我想
Q_ID P_ID1 Q1 P_ID2 Q2
1 180 3 181 11
2 180 9 181 6
3 180 5 181 3
也許我在這裏採取了錯誤的做法。有什麼建議麼?
UPDATE: 這裏是我的指針後RedFilter什麼工作:
(SELECT *
FROM (
SELECT * FROM orders_products
INNER JOIN orders ON orders_products.orders_id = orders.orders_id
WHERE products_id =181) AS A
LEFT JOIN (
SELECT * FROM orders_products
INNER JOIN orders ON orders_products.orders_id = orders.orders_id
WHERE products_id =180) AS B ON A.orders_id = B.orders_id
)
UNION (
SELECT *
FROM (
SELECT *
FROM orders_products
INNER JOIN orders ON orders_products.orders_id = orders.orders_id
WHERE products_id =181
) AS C
RIGHT JOIN (
SELECT *
FROM orders_products
INNER JOIN orders ON orders_products.orders_id = orders.orders_id
WHERE products_id =180
) AS D ON C.orders_id = D.orders_id
)
嗯所有的加盟看起來有點不必要.... – Neal 2011-05-17 19:15:36
你能描述你想從這個查詢檢索什麼?可能有更有效的方法。 – 2011-05-17 19:19:29