mysql - 如何从非唯一键检索不匹配的记录?

标签 mysql select

我有一个这样的表:

Physician_key Product Month Score
  1 a       8     1 
  1 a       8     2 
  1 a       8     3 
  2 b       8     2 
  2 b       8     1

我试图仅检索分数<=2的键的计数,并且我不想计算该键,即使它碰巧有一个时间分数>2。所以在输出中我想要这样的东西: 对于第 8 个月的产品 b,计数 =2。

我正在尝试对记录 <=2 和 >2 的键进行空约束的自连接。但它仍然返回我不想要的前两行。

最佳答案

NOT EXISTS 子句可能会有所帮助:

SELECT * FROM table t 
WHERE NOT EXISTS (
                 SELECT 1 
                 FROM table tx 
                 WHERE tx.Physician_key = t.Physician_key 
                       AND tx.Product = t.Product 
                       AND Score > 2
                 );

这基本上是说“给我表中的所有行,但排除存在该医生和产品得分 > 2 的行的任何行”

关于mysql - 如何从非唯一键检索不匹配的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099873/

相关文章:

mysql - 什么是呈现时间序列数据的首选方法

mysql - Hive中使用CTE加入错误

mysql - clojure中从mysql数据库获取数据

select - 在 JavaFX 中搜索 TableView 列表

MySQL:显示总数

sql - SQL如何选择最近的日期项目

mysql - 如何从MySql中的3个不同表中获取数据

php - 搜索前 500 个字母并排除 html 标签?

php - php mysql 添加附件到电子邮件

sql-server - SQL 从第一个表中选择行并更新到第二个表