mysql - Left joining only one result of corresponding table -


मेरे पास निम्न तालियां हैं:

उत्पादों: आईडी INT शीर्षक VARCHAR

ऑफर: आईडी INT product_id INT मूल्य INT

एक उत्पाद में कई ऑफ़र हो सकते हैं मुझे कम और उच्च कीमतों के साथ संबंधित प्रस्तावों के साथ सभी उत्पादों को प्राप्त करना होगा, मेरे पास क्या है:

  उत्पादों का चयन करें products.id, products.title, lowOffer.price, highOffer.price उत्पादों से LEFT शामिल हों (SELECT offers.product_id, MIN (offers.price) एएस मूल्य से ऑफर ग्रुप द्वारा ऑफ़र प्रदान करता है। प्रोडक्ट_आईडी) कम ऑफीर ऑन (कम ऑफीर.प्रॉडक्ट_आईडी = उत्पाद.आईडी) निचला जॉइन (चयन ऑफर.प्रोडक्ट_आईडी, मैक्स (ऑफर.प्रिस) एएस मूल्य से ऑफर ग्रुप द्वारा ऑफर.प्रॉडक्ट_आईडी) उच्च ऑफ़र ऑन (हाई ओफ़र.प्रॉडक्ट_आईड = उत्पाद.आईडी)   

अब, मैं दो subqueries कर रहा हूं, और मुझे लगता है कि मैं केवल एक ही हो सकता है, क्योंकि ये दो शामिल ऑफर के समान सेट पर काम कर रहे हैं। मैं यह कैसे कर सकता हूं?

मेरा व्यवसाय तर्क इससे थोड़ा अधिक जटिल है और प्रस्तावों के पास संबंध हैं और मुझे उन्हें भी लाने की आवश्यकता है। मैं यह कैसे एक कुशल तरीके से कर सकता हूँ? मैं बिना किसी आवश्यकता के जोड़ना चाहता हूं।

आप जुड़ सकते हैं, और तब उपयोग कर सकते हैं शीर्ष स्तर पर ग्रुप BY :

  SELECT p.id, p.title, MIN (ओपीप्रस) min_price, MAX (o.price) के रूप में max_price पीओआईटी, पी.टी.टी.एल.एल     से उत्पादों से पीईटीओन की पेशकश ओ ओपरप्रोडक्ट_आईड = पी।

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -