मेरे पास एक टीम टेबल और एक खिलाड़ी टेबल है और मैं उन सभी टीमों को ढूंढना चाहता हूं जिनके पास उनके साथ जुड़े खिलाड़ी नहीं हैं। खिलाड़ियों की तालिका team_id
कॉलम के माध्यम से जुड़ी हुई है। मैं इसके लिए रेल पर रूबी का उपयोग कर रहा हूं इसलिए मेरे पास एक टीम और प्लेयर मॉडल है।संबंधित लोगों के बिना सभी रिकॉर्ड ढूंढना
उत्तर
यह बेहतर एक बाएं कर प्रदर्शन कर सकते हैं में शामिल होने:
SELECT
teams.*
FROM teams
LEFT JOIN players ON (teams.id = players.team_id)
WHERE
players.team_id IS NULL
या इसका उपयोग करते अरेल (JasonKing की टिप्पणी के लिए धन्यवाद):
Team.includes(:players).where('players.team_id IS NULL')
परफेक्ट हैं, तो मैं थोड़ी देर ले रहा हूं, और मैं रेल का भी उपयोग कर रहा हूं (मुझे कुछ उल्लेख करना चाहिए था, मुझे लगता है) तो यह अच्छी तरह से संबंध में है: जुड़ता है और: शर्तें वाक्यविन्यास। –
शामिल होने के लिए एसक्यूएल का उपयोग करने की कोई आवश्यकता नहीं है, यही वह है जो '() 'करता है। अर्थात। 'Team.includes (: खिलाड़ियों)। कहीं ('players.team_id IS NULL')' – smathy
एक आखिरी ताकत: 'team.includes (: players)। कहीं (: खिलाड़ी => {: team_id => nil})' – smathy
कुछ इस तरह:
select * from teams
where id not in (select distinct team_id from players)
के साथ काम करना चाहिए इस दृष्टिकोण के साथ नकारात्मकता: यदि आपके पास बहुत सारे खिलाड़ी –
आप करना चाहते हैं कि एक NOT EXISTS
हालत इतनी तरह के साथ:
SELECT *
FROM teams
WHERE NOT EXISTS (SELECT 1 FROM players WHERE players.team_id = teams.team_id)
आप आम तौर पर एक बाहरी ऐसा करने में सक्षम होना चाहिए बच्चे और जांच करने के लिए माता पिता से शामिल होने के बच्चे के उस क्षेत्र में एक शून्य मूल्य के लिए जो शून्य-सक्षम नहीं है। यह आमतौर पर 'इन नहीं' या 'अस्तित्व में नहीं' से तेज़ होता है। यह सभी डेटाबेस पर काम नहीं कर सकता है।
- 1. रेल में कोई संबंधित रिकॉर्ड के साथ रिकॉर्ड ढूंढना 3
- 2. सत्र स्थिति के सभी उपयोगों को ढूंढना
- 3. एसक्यूएल के लिए डुप्लीकेट के साथ रिकॉर्ड ढूंढना संभव है?
- 4. रेल: कई (एचएबीटीएम) के पास है और संबंधित है - अन्य रिकॉर्ड बनाने के बिना एसोसिएशन बनाएं
- 5. किसी अन्य तालिका में दो विशिष्ट रिकॉर्ड के साथ रिकॉर्ड ढूंढना
- 6. एकाधिक तालिकाओं से सभी संबंधित रिकॉर्ड्स हटाएं
- 7. संबंधित मॉडलों के बिना मॉडल पुनर्प्राप्त करना - केकेपीएचपी
- 8. MYSQL गिनती संबंधित रिकॉर्ड एक प्रश्न
- 9. PHP MySQL सभी रिकॉर्ड
- 10. एसक्यूएल रिटर्न सभी रिकॉर्ड
- 11. डेटाबेस में MySQL माता-पिता और सभी संबंधित बाल रिकॉर्ड को एक नई आईडी
- 12. सभी बाल नियंत्रणों को ढूंढना WPF
- 13. वर्तमान कार्यक्षेत्र में सभी कार्यों को ढूंढना
- 14. सी # प्रतिबिंब और सभी संदर्भों को ढूंढना
- 15. जावास्क्रिप्ट के बिना लोगों के बारे में भूलना ठीक है?
- 16. ऑडियो के बिना एंड्रॉइड रिकॉर्ड वीडियो
- 17. कोडइग्निटर: चक्र के बिना एकाधिक रिकॉर्ड INSERT
- 18. फैक्टरी गर्ल: नया रिकॉर्ड बनाने के बिना रिकॉर्ड को दूसरे रिकॉर्ड में कैसे जोड़ना है?
- 19. निरपेक्ष लोगों
- 20. किसी दिए गए त्रिज्या के अंदर सभी मार्करों को ढूंढना
- 21. दो सर्किलों के लिए सामान्य सभी बिंदुओं को ढूंढना
- 22. सभी ऑब्जेक्ट्स को कोई संबंधित है_मनी ऑब्जेक्ट्स
- 23. रेल 3 सभी संबंधित रिकॉर्ड्स है Imany:
- 24. क्या किसी दिए गए डोमेन नाम के लिए सभी DNS सबडोमेन ढूंढना संभव है?
- 25. बिना छेड़छाड़ के क्लोजर में एकाधिक संबंधित चर बाध्यकारी
- 26. सभी ऐप्स में एंड्रॉइड डिवाइस पर सभी टच और एक्सेलेरोमीटर को रिकॉर्ड करने के लिए
- 27. हैडोप सभी रेड्यूसर को रिकॉर्ड भेजता है
- 28. गैर-शून्य फ़ील्ड वाले सभी रिकॉर्ड खोजें?
- 29. MySQL सभी लेकिन नवीनतम एक्स रिकॉर्ड
- 30. MySQL में सभी अनाथ रिकॉर्ड कैसे हटाएं?
एसक्यूएल में से कौन सा बोली आप उपयोग कर रहे हैं? –
आदर्श रूप से यह MySQL, Postgres और Sqlite3 –