sql - Get latest record from second table left joined to first table -
मेरे पास एक उम्मीदवार तालिका है, जो कि उम्मीदवारों
को केवल id
फ़ील्ड और मैं इसे प्रोफाइल
तालिका में शामिल हो गया। तालिका प्रोफाइल
में 2 फ़ील्ड हैं, जैसे candidate_id
& amp; नाम
।
उदाहरण के लिए तालिका उम्मीदवार
:
आईडी ---- 1 2
और तालिका प्रोफाइल
: < / P>
candidate_id नाम ---------------------------- 1 फ़ूबार 1 फ़ूबार 2 फ़ूबार 3
< / पूर्व>मुझे एक सिंगल क्वेरी में एक उम्मीदवार का नवीनतम नाम चाहिए जो नीचे दिया गया है:
का चयन करें सीआईडी, पी.नाम से उम्मीदवारों सी छोड़कर जुड़ें प्रोफाइल पी पी पी .candidate_id = सीआईडी ग्रुप द्वारा पी.नाम द्वारा सीआईडी आदेश;
लेकिन यह क्वेरी रिटर्न:
1 फ़ूबार 2 फ़ोबबर 3
... इसके बजाय:
1 Foobar2 2 Foobar3
समस्या यह है कि आपका < कोड> प्रोफाइल तालिका यह पता लगाने का एक विश्वसनीय माध्यम नहीं है कि नवीनतम नाम
मान क्या है प्रोफ़ाइल्स
तालिका के लिए दो विकल्प हैं:
- एक दिनांक समय कॉलम जोड़ें: IE:
created_date
- एक auto_increment परिभाषित करें कॉलम
पहला विकल्प सबसे अच्छा है - यह स्पष्ट है, जिसका मतलब है कि कॉलम का उपयोग बिल्कुल स्पष्ट है, और पिछली प्रविष्टियों को बेहतर ढंग से संभालता है।
वैकल्पिक तालिका यदि कोई मान प्रदान नहीं किया गया है, तो रिकॉर्ड को सम्मिलित करने के लिए मान देना चाहते हैं, तो अंत में निम्नलिखित की प्रतिलिपि करें: DEFAULT CURRENT_TIMESTAMP
उस जगह के साथ, आप अपना वांछित परिणाम प्राप्त करने के लिए निम्न का उपयोग करेंगे:
का चयन करें c.id, p.name उम्मीदवारों से सी छोड़कर जुड़ने वाली प्रोफाइलें p.candidate_id = c.id पर जोड़ें (चयन करें x.candidate_id, MAX (x.created_date) AS max_date प्रोफ़ाइल x समूह द्वारा x.candidate_id) y पर y.candidate_id = p.candidate_id और y.max_da Te = p.created_date ग्रुप द्वारा c.id आदेश द्वारा p.name
Comments
Post a Comment