我有两个表,PATIENT和VISIT。一个以PatientID为主要关键字,另一个以VisitID为主要关键字。我需要选择已经去过两次以上医院的患者的名字和姓氏。
我尝试过DISTINCT,嵌套where子句,INNER JOIN等。
SELECT FirstName
, LastName
, PatientID
, COUNT(*) AS total_visits
FROM VISIT
WHERE total_visits > 2;
它应该只显示在VISIT表中出现两次以上的患者的名字和姓氏,但是无论我如何重新排列代码都行不通。
答案 0 :(得分:0)
您需要public class A {
@Column
@Where(clause = "A.needs_B = 'true'")
B b;
}
和GROUP BY
:
HAVING
答案 1 :(得分:0)
根据戈登的回答和您的评论,我认为VISIT中的PatientID是PATIENT表的键。因此,您将需要使用“ INNER JOIN”。所以您的查询看起来像这样:
SELECT FirstName, LastName, v.PatientID, COUNT(*) AS total_visits
FROM VISIT v
INNER JOIN PATIENT p ON p.PatientID = v.PatientID
GROUP BY FirstName, LastName, v.PatientID
HAVING COUNT(*) > 2;
请注意,Access中的AFAIK不能在HAVING子句中使用别名。您需要按原样重复COUNT(*)。