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

时间:2013-08-07 09:36:54

标签: 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的密钥的数量,并且我不想计算密钥,即使它出现具有单个时间分数&gt; 2。所以在输出中我想要这样的东西: 对于第8个月的产品b,计数= 2。

我正在尝试使用Null约束对记录&lt; = 2和&gt; 2的键进行自联接。但它仍然返回我前2行,我不想要。

1 个答案:

答案 0 :(得分:0)

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”