क्या कोई मुझे बता सकता है कि निम्नलिखित क्यों काम नहीं करेंगे? यह दो चयनों के बीच शामिल कुंजी शब्द के पास एक वाक्यविन्यास त्रुटि की शिकायत करता है।दो चुनिंदा वक्तव्यों में शामिल होना
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
प्राप्त करने के लिए हो सकता है कि मैं एक गलत दृष्टिकोण यहाँ ले रहा हूँ चाहते हैं का उपयोग कर और,। कोई सुझाव?
अद्यतन: यहाँ 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
)
ummm सब में शामिल होने के एक सा अनावश्यक .... लग रहा है – Neal
आप का वर्णन कर सके तो आप इस क्वेरी से पुनः प्राप्त करना चाहते हैं? एक और अधिक प्रभावी तरीका हो सकता है। –