SQL - 只选择一种特定类型

时间:2017-05-30 12:25:00

标签: mysql sql

我想知道是否可以用一个确切的陈述来选择数据。

假设我的数据库中有2个客户,他们都获得了值“1”,但其中一个也有一个名为“2”的值。

如何只使用客户编号1获得结果?我有兴趣让所有的客户的价值为“1”,而不是“1”,“2”,“3”等。

更具体的描述:

**Customer 1:**
Name: "Peter"
Value: "1"

**Customer 2:**
Name: "Chris"
Value: "1", "2", "3"

现在,我只想要Customer 1的结果,其值为“1”

2 个答案:

答案 0 :(得分:0)

您可以使用not exists

select t.*
from t
where t.value = 1 and 
      not exists (select 1 from t t2 where t2.name = t.name and t2.value <> 1);

答案 1 :(得分:0)

您可以将GROUP BYCOUNT一起使用,例如:

SELECT Name
FROM customer
WHERE Value = "1"
GROUP BY Name
HAVING COUNT(DISTINCT(Value)) = 1;