如果我有這片架構:意見有關查詢
,我想拿到戴維·瓊斯博士贏得的錢數, 是下面的查詢邏輯吧? N.B它在SQL
運行SELECT SUM(charge)
FROM Visit v INNER JOIN Doctor d
ON (d.licence_no = v.licence_no AND doctor_name = 'davy jones')
如果我有這片架構:意見有關查詢
,我想拿到戴維·瓊斯博士贏得的錢數, 是下面的查詢邏輯吧? N.B它在SQL
運行SELECT SUM(charge)
FROM Visit v INNER JOIN Doctor d
ON (d.licence_no = v.licence_no AND doctor_name = 'davy jones')
是:)
剛剛作出了一個快速測試。
我會寫略有不同,以說明戴維·瓊斯已經見過沒有病人的情況。
SELECT SUM(v.charge)
FROM Doctor d
LEFT JOIN Visit v
ON d.license_no = v.license_no
WHERE d.doctor_name = 'davy jones';
既然你別名表「訪問」,以「V」指定列(v.charge)
時,你也應該使用別名。此外,您的內部連接條件應只指定連接條件,而不是限制條款,應將其指定爲WHERE
條件。看到這個例子:
SELECT SUM(v.charge)
FROM Visit v INNER JOIN Doctor d
ON (d.licence_no = v.licence_no)
WHERE d.doctor_name = 'davy jones';
你能向我解釋一下你編輯的內容嗎? :) –
@MohamedAbdelHakim主要的變化是我使用了一個LEFT JOIN而不是一個INNER,並且我把doctor_name的測試移到了WHERE子句中。 –
啊我現在明白了,非常感謝喬:) –