আমি কিছু এসকিউএল নিয়ে নিজেকে কিছুটা আটকে রেখেছি। আমি মনে করি না যে আমি প্রশ্নটি উজ্জ্বলভাবে বলতে পারি - তাই আমাকে আপনাকে দেখাতে দিন।
আমার দুটি টেবিল রয়েছে, একজনকে ব্যক্তি বলা হয়, একটি অ্যাপয়েন্টমেন্ট বলে। আমি একজন ব্যক্তির কতগুলি অ্যাপয়েন্টমেন্টের অ্যাপয়েন্টমেন্ট ফিরিয়ে দেওয়ার চেষ্টা করছি (তাদের শূন্য রয়েছে কিনা তা সহ)। অ্যাপয়েন্টমেন্টের মধ্যে রয়েছে person_id
এবং person_id
প্রতিটি অ্যাপয়েন্টমেন্ট রয়েছে। সুতরাং COUNT(person_id)
কোন যুক্তিসম্মত পন্থা।
ক্যোয়ারী:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
সঠিকভাবে ফিরে আসবে, একজন ব্যক্তি_আইডির অ্যাপয়েন্টমেন্টের সংখ্যা। তবে, 0 ব্যক্তির সাথে 0 অ্যাপয়েন্টমেন্ট থাকা ব্যক্তি ফিরে আসেনি (স্পষ্টত তারা সেই টেবিলে নেই)।
ব্যক্তির টেবিল থেকে person_id নেওয়ার জন্য উক্তিটি টুইট করে আমাকে এমন কিছু দেয়:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
তবে এটি কেবলমাত্র এমন একজন ব্যক্তির_ই ফিরে আসবে যার অ্যাপয়েন্টমেন্ট আছে এবং আমি যা চাই না তার সাথে 0 অ্যাপয়েন্টমেন্ট রয়েছে এমন ব্যক্তিদের সাথে ফিরে আসা!
কোন পরামর্শ দয়া করে?