mysql - 需要帮助在 mySQL 中返回唯一结果

标签 mysql sql

我遇到了麻烦,需要一些帮助来找到正确的 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/

相关文章:

sql - 折叠具有连续时间戳的多行

mysql - SQL 在按 column1 分组后更新 column3 并比较 column2 中的值

mysql - 计算记录之间的时间?

php - 如何修复 "Strict Standards: Only variables should be passed by reference"?

sql - 合并具有公共(public)字段的同一表的两行

Web 服务中的 SQL 最佳实践

java - 查找 varchar 的最大值

php - 如何使用ajax post请求实时检查来自mysql的数据?

python - 尝试使用 Python 和 BS4 将抓取的值导入 MySQL 表时抛出警告

MySQL 通过 REGEXP 匹配的计数来增加字段