2012-01-05 11 views
6

मेरे पास तीन टेबल हैं - नोड, content_type_product और share_content। वहां हो सकता है 1: एन रिश्ते beetween नोड और share_content। मैं प्रति आईडी केवल एक रिकॉर्ड खींचना चाहता हूँ। अगर वहाँ share_content में कई रिकॉर्ड है, मैं एक नवीनतम चाहते हैं, कि sc.auto_id के उच्चतम मूल्य हैएसक्यूएल + कई रिश्तों में से एक में शामिल हो गया

SELECT sc.uid, n.uid, n.nid, sc.message 
    FROM node n 
    LEFT JOIN content_type_product p ON n.nid = p.nid 
    LEFT JOIN share_content sc ON n.nid = sc.nid 
    WHERE n.nid = 40513 
    GROUP BY sc.nid 
    ORDER BY sc.auto_id 
+0

आप sc.auto_id DESC – amccausl

+1

[उदाहरण] (http://sscce.org/) द्वारा आदेश का उपयोग कर सकते स्कीमा बिना अधूरा है (जैसा कि 'TABLE' कथन बनाएं) है, नमूना कोशिश डेटा ('INSERT' कथन के रूप में) और नमूना डेटा के लिए वांछित परिणाम। – outis

+0

संभावित डुप्लिकेट [अधिकतम स्तंभ मूल्य समूह के साथ पंक्तियों का चयन करें किसी अन्य कॉलम द्वारा] (http://stackoverflow.com/questions/1425240/), [समूहबद्ध क्वेरी में शीर्ष स्ट्रिंग कॉलम मान कैसे खोजें] (http: // stackoverflow.com/questions/1443979/), [एसक्यूएल ग्रुप बाय एंड मैक्स] (http://stackoverflow.com/questions/1299556/) – outis

उत्तर

5

आप content_type_product को क्यों शामिल हो रहे हैं ?? लेकिन उस तरफ,

SELECT c.uid, n.uid, n.nid, c.message 
FROM node n 
    LEFT JOIN share_content c 
     ON c.nid = n.nid 
      And c.auto_id 
      = (Select Max(auto_id) 
       From share_content 
       Where nid = p.nid) 
Where n.nid = 40513 
ORDER BY c.auto_id 
+0

इसे संपादित किया गया क्योंकि आपका सबक्वायरी शामिल करने के लिए आवश्यक कॉलम वापस नहीं करेगा, यह केवल MAX (auto_id) मान लौटाएगा। –

+0

हम्म, c.auto_id = uid, संदेश कैसे हो सकता है ?? – sonofthom

+0

इसे सबमिट करने के लिए इसे वापस करने के लिए पुनः सबमिट किया गया - क्योंकि यह एकमात्र स्तंभ है जो सबक्वायरी वापस लौटने की आवश्यकता है, संदेश फ़ील्ड के लिए कोड जोड़ा गया –

1

प्रयास करें:

SELECT sc.uid, n.uid, n.nid, sc.message FROM node n left join content_type_product p on n.nid = p.nid LEFT JOIN share_content sc on n.nid = sc.nid 
WHERE n.nid = 40513 
GROUP BY sc.nid, sc.auto_id 
ORDER BY sc.auto_id DESC 
+0

धन्यवाद - काम करता है, हालांकि - हम केवल sc.nid द्वारा समूह की तलाश में हैं - क्योंकि हम केवल एक परिणाम चाहते हैं। – sonofthom

संबंधित मुद्दे