1

私は次のデータベーススキーマを持っています:

table courses:
id
tutor_id
title



table course_categories:
    id
    category_id
    course_id

table categories:
    id
    name

table tutors:
    id
    name

table subscribers:
    id
    course_id
    user_id

すべてのカテゴリ、そのコースのチューター、およびそのコースのサブスクライバーの数を含むコースを取得するには、1つのSQLを作成する必要があります。これは1つのクエリで実行できますか?これは、ストアドプロシージャを使用して実行する必要がありますか?

4

3 に答える 3

5

このクエリを使用すると、必要なものが得られます。

select co.title as course,
       ca.name as category,
       t.name as tutor,
       count(s.*) as total_subscribers
from courses co
inner join course_categories cc on c.id = cc.course_id
inner join categories ca on cc.category_id = ca.id
inner join tutors t on co.tutor_id = t.tutor_id
left join subscribers s on co.id = s.course_id
where co.title = 'Cat1'
group by co.title, ca.name, t.name

与えleft joinられた. 他のすべてのテーブルには、 、およびごとにデータがあると想定しています。そうでない場合は、ユーザーも使用できますが、null のデータが得られます。subscriberscoursecoursecategorietutorleft join

于 2012-02-10T10:02:50.457 に答える
1

それはできます。を調べてselect使用する必要がありjoinます。割り当てを完了するために選択して参加するを参照 してください

于 2012-02-10T10:03:03.037 に答える
0

コースから cou.title、cat.name、tu.name、count(sub.user_id) を選択します。および tu.id = cou.title、tu.name による sub.id グループ。

于 2018-02-18T03:03:07.027 に答える