7

私は2つのテーブル(メンバー、duty_sched)を持っています。各メンバーがduty_schedテーブルに表示される回数をカウントできるようにしたいです。これは、数週間検索した後に私が持っているものです

SELECT 
members.fname, 
members.lname, 
(SELECT COUNT(duty_sched.id) FROM duty_sched
 WHERE 'duty_sched.mbr_id' = 'members.mbr_id') AS shifts 

FROM members
ORDER BY members.lname, members.fname

私が得ている出力はすべてゼロです。私が見せたいのは次のとおりです。

ネームシフト ボブ・スミス 4 ジェーン・ジョンソン 2

私が得ることができるどんな助けも大歓迎です。

4

3 に答える 3

7

一重引用符を削除します。WHERE duty_sched.mbr_id = members.mbr_id)

クエリを次のように記述することもできますLEFT JOIN

SELECT 
    m.fname, 
    m.lname, 
    COUNT(d.id) AS shifts 
FROM members AS m
  LEFT JOIN duty_sched AS d
    ON d.mbr_id = m.mbr_id
GROUP BY
    m.mbr_id                     -- the Primary Key of `members`
ORDER BY 
    m.lname, m.fname ;
于 2013-01-06T01:44:46.013 に答える
0

あなたはそのようなことを試すことができます

SELECT 
members.fname, 
members.lname, 
count(*) FROM duty_sched JOIN members
WHERE duty_sched.mbr_id = members.mbr_id
Group by duty_sched.mbr_id
ORDER BY members.lname, members.fname
于 2013-01-06T01:46:55.807 に答える