我遇到了麻烦,需要一些帮助来找到正确的 SQL 查询。到目前为止,这是我的代码:
SELECT firstname, lastname, date_of_birth
FROM `data`
WHERE firstname IN (SELECT firstname
FROM `data`
WHERE diagnosis_location = 'Mayo')
AND lastname IN (SELECT lastname
FROM `data`
WHERE diagnosis_location = 'Mayo')
AND date_of_birth IN (SELECT date_of_birth
FROM `data`
WHERE diagnosis_location = 'Mayo')
AND firstname IN (SELECT firstname
FROM `data`
WHERE diagnosis_location = 'Lahey')
AND lastname IN (SELECT lastname
FROM `data`
WHERE diagnosis_location = 'Lahey')
AND date_of_birth IN (SELECT date_of_birth
FROM `data`
WHERE diagnosis_location = 'Lahey')
是的,这是一个庞大的查询,而且可能效率不高。但我想做的只是返回在“Mayo”地点和“Lahey”地点诊断出的所有患者的名字、姓氏和出生日期。此查询确实会返回那些患者,但会返回多行完全相同的数据。
我如何限制它,以便删除完全相同的结果的重复项?
最佳答案
使用:
SELECT firstname, lastname, date_of_birth
FROM `data`
WHERE diagnosis_location IN ('Mayo', 'Lahey')
GROUP BY firstname, lastname, date_of_birth
HAVING COUNT(DISTINCT diagnosis_location) = 2
关于mysql - 需要帮助在 mySQL 中返回唯一结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659853/