Sql 从特定列值的行组中选择一行

Sql 从特定列值的行组中选择一行,sql,select,Sql,Select,我想写一个查询来实现以下功能。我有一个表xyz,其中有多个行,在a列中有相同的列值1 我想在b列中找到,对于a列中值为1的行集合,b列中没有特定的值 Table xyz --------- a b 1 te 1 we 1 re 2 te 2 re 3 ge 4 re 所以基本上我想知道,对于a列中的一组值,b列是否没有“te”值 当我这样做的时候 Select a from xyz where b <> 'te' group by a 我会得到

我想写一个查询来实现以下功能。我有一个表xyz,其中有多个行,在a列中有相同的列值1

我想在b列中找到,对于a列中值为1的行集合,b列中没有特定的值

Table xyz
---------

a  b   
1  te

1  we

1  re

2  te

2  re

3  ge

4  re
所以基本上我想知道,对于a列中的一组值,b列是否没有“te”值

当我这样做的时候

Select a from xyz where b <> 'te'
group by a
我会得到1,2,3和4的结果

但是我希望结果应该只包含1和2。请帮忙

Select a from xyz where (b<>'te') and ((a=1) or (a=2))
或作为变体

select a from xyz where (b<>'te') and (a in (1, 2))

我只是意识到我没有也仍然不明白你在问什么。你能试着再说一遍吗?我能想到的唯一一个基于此数据返回1和2的非平凡解释是:

SELECT DISTINCT q1.a FROM (SELECT a FROM xyz WHERE b='te') q1
JOIN (SELECT a FROM xyz WHERE b!='te') q2 ON
q1.a=q2.a
SELECT DISTINCT a FROM xyz WHERE a NOT IN (SELECT a FROM xyx WHERE b='te')
a的值是什么,使得有一行同时包含a和 “te”和同时具有a和除“te”以外的值的行

在这种情况下,查询将是:

SELECT DISTINCT q1.a FROM (SELECT a FROM xyz WHERE b='te') q1
JOIN (SELECT a FROM xyz WHERE b!='te') q2 ON
q1.a=q2.a
SELECT DISTINCT a FROM xyz WHERE a NOT IN (SELECT a FROM xyx WHERE b='te')
与示例中返回3和4或geo示例中返回1和2相对应的解释为:

SELECT DISTINCT q1.a FROM (SELECT a FROM xyz WHERE b='te') q1
JOIN (SELECT a FROM xyz WHERE b!='te') q2 ON
q1.a=q2.a
SELECT DISTINCT a FROM xyz WHERE a NOT IN (SELECT a FROM xyx WHERE b='te')
不存在te行的a的值是什么

在这种情况下,查询将是:

SELECT DISTINCT q1.a FROM (SELECT a FROM xyz WHERE b='te') q1
JOIN (SELECT a FROM xyz WHERE b!='te') q2 ON
q1.a=q2.a
SELECT DISTINCT a FROM xyz WHERE a NOT IN (SELECT a FROM xyx WHERE b='te')
如图所示,sqlfiddle出现问题,所以我使用了ideone

select a from xyz
where b! = 'tz' and 
a in (select a from xyz where b = 'tz')
这就是你要找的吗?

试试这个:

Select a from xyz where b = 'te'
group by a

您选择1和2类Sub 1 eng 1 Phy 1 chem 2 eng 2 chem 2 Phy 2 eng 3 his 3 geo的标准是什么?我想找到Sub geo不存在的类。如果这是要求,则您的查询将返回正确答案。然后使用原始示例,如果要查找不存在“te”的a的值,则要返回3和4,而不是1、2、3和4,对吗?事实上,你说你想返回1和2是令人困惑的,因为这只是一个简单的搜索te存在的地方。Class Sub 1 eng 1 Phy 1 chem 2 eng 2 chem 2 Phy 3 eng 3 his 3 geo我想找到Sub geo不存在的类。希望这是有意义的。