mysql - Left joining only one result of corresponding table -
मेरे पास निम्न तालियां हैं:
एक उत्पाद में कई ऑफ़र हो सकते हैं मुझे कम और उच्च कीमतों के साथ संबंधित प्रस्तावों के साथ सभी उत्पादों को प्राप्त करना होगा, मेरे पास क्या है: अब, मैं दो subqueries कर रहा हूं, और मुझे लगता है कि मैं केवल एक ही हो सकता है, क्योंकि ये दो शामिल ऑफर के समान सेट पर काम कर रहे हैं। मैं यह कैसे कर सकता हूं? मेरा व्यवसाय तर्क इससे थोड़ा अधिक जटिल है और प्रस्तावों के पास संबंध हैं और मुझे उन्हें भी लाने की आवश्यकता है। मैं यह कैसे एक कुशल तरीके से कर सकता हूँ? मैं बिना किसी आवश्यकता के जोड़ना चाहता हूं। आप जुड़ सकते हैं, और तब उपयोग कर सकते हैं शीर्ष स्तर पर उत्पादों: आईडी INT शीर्षक VARCHAR
ऑफर: आईडी INT product_id INT मूल्य INT
उत्पादों का चयन करें products.id, products.title, lowOffer.price, highOffer.price उत्पादों से LEFT शामिल हों (SELECT offers.product_id, MIN (offers.price) एएस मूल्य से ऑफर ग्रुप द्वारा ऑफ़र प्रदान करता है। प्रोडक्ट_आईडी) कम ऑफीर ऑन (कम ऑफीर.प्रॉडक्ट_आईडी = उत्पाद.आईडी) निचला जॉइन (चयन ऑफर.प्रोडक्ट_आईडी, मैक्स (ऑफर.प्रिस) एएस मूल्य से ऑफर ग्रुप द्वारा ऑफर.प्रॉडक्ट_आईडी) उच्च ऑफ़र ऑन (हाई ओफ़र.प्रॉडक्ट_आईड = उत्पाद.आईडी)
ग्रुप BY :
SELECT p.id, p.title, MIN (ओपीप्रस) min_price, MAX (o.price) के रूप में max_price पीओआईटी, पी.टी.टी.एल.एल से उत्पादों से पीईटीओन की पेशकश ओ ओपरप्रोडक्ट_आईड = पी।
Comments
Post a Comment