如果我有这个架构:
Doctor(license_no, doctor_name, specialty)
Patient(pat_id, pat_name, pat_address, pat_phone, date_of_birth)
Visit(license_no, pat_id, date, type, diagnosis, charge)
Run Code Online (Sandbox Code Playgroud)
而且我想获得Davy Jones博士获得的金额,以下查询在逻辑上是正确的吗?NB它在SQL中运行
SELECT SUM(charge)
FROM Visit v INNER JOIN Doctor d
ON (d.licence_no = v.licence_no AND doctor_name = 'davy jones')
Run Code Online (Sandbox Code Playgroud)
我写的略有不同,以解释戴维琼斯没有患病的情况.
SELECT SUM(v.charge)
FROM Doctor d
LEFT JOIN Visit v
ON d.license_no = v.license_no
WHERE d.doctor_name = 'davy jones';
Run Code Online (Sandbox Code Playgroud)