我不太确定如何解释这个问题。和我在一起。
我想创建一个查询来检索表中行列中包含x&#s的行(这是一个虚拟表):
row col1 col2 col3
x 1 a c
x 2 b c
x 3 a c
4 b d
x 5 f g
所以我希望我的查询工作的方式是检索col2的值在col3中没有行的所有行,其中值为d。 IE浏览器。价值' a'将被检索,因为它只有col3的c,但值' b'不会被检索,因为它在第4行的col3中有 d 。
我希望这很容易理解。
聚苯乙烯。一旦我知道如何进行查询,我希望我知道如何标记标题并重做它。 (虽然现在我想到了,也许这个标题最适合所有那些像我一样的人)
答案 0 :(得分:2)
考虑如何手动执行此操作,并将其放入查询中。
要获得您所写的所有col3值:
SELECT DISTINCT col3 FROM TABLE_NAME
使用它通过not in
子句过滤选择中的行:
SELECT
col1, col2, col3 FROM TABLE_NAME
WHERE col2 not in (SELECT DISTINCT col3 FROM TABLE_NAME);
答案 1 :(得分:2)
根据您提供的所有内容,我必须做出一些假设。如果没有在表上进行自联接,您可以利用表上的标识键来使用简单的查询:
SELECT * FROM TABLE_NAME
WHERE id NOT IN (SELECT id FROM TABLE_NAME WHERE col3 = 'd');
如果您没有桌面上的身份密钥,您可以执行更多类似的操作:
SELECT * FROM TABLE_NAME
WHERE col2 NOT IN (SELECT col2 FROM TABLE_NAME WHERE col3 = 'd');
这两个查询都将返回关系中所有元组的元组,这些元素的col2元素不在元组中,其中col3包含' d'。