سؤال

في بوستجرس وأنا واثق إلى حد ما يمكنك القيام به شيء من هذا القبيل

SELECT
  authors.stage_name, 
  count(select id from books where books.author_id  = authors.id) 
FROM
  authors,
  books;

وأساسا، في هذا المثال أود أن إرجاع قائمة المؤلفين وعدد الكتب كتب كل .... في نفس الاستعلام.

هل هذا ممكن؟ وأظن أن هذا النهج هو ساذج بدلا ..

والشكر:)

هل كانت مفيدة؟

المحلول

حسنا، لشيء واحد، تقوم بإرجاع المنتج الديكارتي من جميع المؤلفين على جميع الدفاتر وبغض النظر عن ما إذا كان هذا البلاغ كتب هذا الكتاب.

وهنا هو كيف كنت أكتب استعلام للحصول على النتيجة يقول لك هل تريد:

SELECT a.stage_name, COUNT(b.id)
FROM authors a
  LEFT OUTER JOIN books b ON (a.id = b.author_id)
GROUP BY a.id;

وكنت بحاجة لمعرفة كيفية كتابة انضمام الاستفسارات إذا كنت تستخدم SQL. الصلة هو SQL ما هي حلقة لغات برمجة التطبيقات. بمعنى آخر. انها بناء البرمجة الأساسية التي تحتاج إلى معرفته.

نصائح أخرى

وماذا عن استخدام الانضمام:

SELECT authors.stage_name, count(*) 
FROM authors INNER JOIN books on books.author_id = authors.id
GROUP BY authors.stage_name
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top