table account:
acID (pri, uni, a-i)
...
table patient:
paID (pri, uni, a-i)
paAccountID (int, foreign key)
...
table test:
tsID (pri, uni, a-i)
tsAccountID (int, foreign key)
tsPatientID (int, foreign key)
tsStatus (int, ranges 0 to 3)
tsFlag (int, ranges 0 to 1)
各患者からのデータpatient
と数の取得:tsID
SELECT patient.*, Count(tsID) as tsCount
FROM account
LEFT JOIN patient ON acID = paAccountID
LEFT JOIN test ON paID = tsPatientID
WHERE paAccountID=1
GROUP BY paID
tsFlag=1
ここで、 number of 、 number of tsStatus=0
、 number of 'tsStatus=1' ... number ofを取得したいと思いますtsStatus=3
。
Explosion Pill の回答に感謝します。
SELECT patient.*, Count(tsID), SUM(tsStatus=0),
SUM(tsStatus=1), SUM(tsStatus=2), SUM(tsStatus=3), SUM(tsFlag=1)
FROM account
LEFT JOIN patient ON acID = paAccountID
LEFT JOIN test ON paID = tsPatientID
WHERE paAccountID=1
GROUP BY paID
魅力のように機能していますがNULL
、SUM
もしそうなら、どうすれば代わりCount=0
に手に入れることができますか?0