我有一个名为“Patients”的表,看起来像这样
> PatientName DateOftest Eye L1 L2 L3 L4 L5 > Mike 17-02-2009 L 23 25 40 32 30 > Mike 17-02-2009 R 25 30 34 35 24 > Ryan 18-03-2012 R 12 18 27 39 40 > Bill 08-03-2006 L 20 24 30 24 25 > Bill 08-03-2006 R 18 25 27 30 24 > Chan 03-08-2009 L 18 21 28 35 12
不,我必须从只有一个(左眼记录或右眼记录测试)的患者中选择 *。结果将是
Ryan 18-03-2012 R 12 18 27 39 40 Chan 03-08-2009 L 18 21 28 35 12
最佳答案
你可以这样做:
SELECT *
FROM Patients
WHERE PatientName IN(SELECT PatientName
FROM Patients
GROUP BY PatientName
HAVING COUNT(*) = 1);
这会给你:
| PATIENTNAME | DATEOFTEST | EYE | L1 | L2 | L3 | L4 | L5 |
-----------------------------------------------------------
| Ryan | 18-03-2012 | R | 12 | 18 | 27 | 39 | 40 |
| Chan | 03-08-2009 | L | 18 | 21 | 28 | 35 | 12 |
关于sql - 在具有约束的类中选择不同的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14931496/