【发布时间】:2010-07-20 20:09:41
【问题描述】:
我有以下数据库表,其中包含有关人员、疾病和药物的信息:
PERSON_T DISEASE_T DRUG_T
========= ========== ========
PERSON_ID DISEASE_ID DRUG_ID
GENDER PERSON_ID PERSON_ID
NAME DISEASE_START_DATE DRUG_START_DATE
DISEASE_END_DATE DRUG_END_DATE
我想编写一个查询来查找所有患有 disease_id 52 但未服用药物 34 的人。我该怎么做?我在 MySql 中尝试了以下操作:
SELECT p.person_id, p.gender, p.name, disease_id, drug_id
FROM person_t as p
INNER JOIN disease_t on disease_t.person_id = p.person_id
RIGHT OUTER JOIN drug_t on drug_t.person_id = p.person_id
WHERE disease_id= 52 AND drug_id != 34;
这为我提供了一个人没有服用 drug_id 34 的所有记录,而不是没有服用 drug_id 34 的人。我将如何编写我想要的查询?
【问题讨论】: