Wednesday 15 August 2012

sql - Left Join query with where clause -


मेरे पास 3 टेबल हैं: समूह , व्यक्ति और कसरत समूह व्यक्ति के लिए एक विदेशी कुंजी है, और व्यक्ति कसरत के लिए एक विदेशी कुंजी है। मैं एक निश्चित समूह में सभी लोगों की सूची का चयन करना चाहता हूं, और यदि उस व्यक्ति के लिए दी गई तारीखों के बीच कसरत होती है, तो अवधि भी प्राप्त होती है, यदि नहीं, तो बस इसे रिक्त करें।

एसक्यूएल को कैसे लिखना बिल्कुल निश्चित नहीं है, मैं इस तरह से कुछ में फंस गया हूं:

  का चयन करें Person.id, person.firstName, Workout.duration व्यक्ति से बाहर बाहरी व्यक्ति पर workout सम्मिलित करें। = Workout.person_id WHERE कसरत। प्रारंभ_क्रमित% s और% s और Person.group_id =% s   

कोई भी विचार?

आपका जहां खंड बाएं भाग जाता है को रद्द कर रहा है। कोई भी मैच नहीं होता है, तो start_date नल है, जो तुलना में विफल रहता है।

पर में चलती है खंड इस को हल करता है:

  सेलेक्ट व्यक्ति.आईडी, व्यक्ति.पहला नाम, कार्यवाही.परिणाम से व्यक्ति बाएं बाहरी व्यक्ति पर कार्यवाही जोड़ें Person.id = Workout.person_id और workout.start_date के साथ% s और% s जहां person.group_id =% s < / कोड>   

No comments:

Post a Comment