2011-12-12 44 views
1

如果我有這片架構:意見有關查詢

​​

,我想拿到戴維·瓊斯博士贏得的錢數, 是下面的查詢邏輯吧? 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') 

回答

0

是:)

剛剛作出了一個快速測試。

5

我會寫略有不同,以說明戴維·瓊斯已經見過沒有病人的情況。

SELECT SUM(v.charge) 
    FROM Doctor d 
     LEFT JOIN Visit v 
      ON d.license_no = v.license_no 
    WHERE d.doctor_name = 'davy jones'; 
+0

你能向我解釋一下你編輯的內​​容嗎? :) –

+0

@MohamedAbdelHakim主要的變化是我使用了一個LEFT JOIN而不是一個INNER,並且我把doctor_name的測試移到了WHERE子句中。 –

+0

啊我現在明白了,非常感謝喬:) –

0

既然你別名表「訪問」,以「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';