如何为不在列2中的列1选择SQL
我有一张有四列的桌子。第一列ID1在ID2中有一个类似的行。我喜欢选择一个查询来获取ID2中的所有行,除了相同的记录。例如:如何为不在列2中的列1选择SQL,sql,Sql,我有一张有四列的桌子。第一列ID1在ID2中有一个类似的行。我喜欢选择一个查询来获取ID2中的所有行,除了相同的记录。例如: ID1 Name1 ID2 Name2 ------------------- 01 A 01 A 01 A 02 B 01 A 03 C 03 C 03 C 03 C 01 A 03 C 04 G 从ID2 ID1所在的表中选择ID2,名称2 输出应为: ID2, Name2 ----------
ID1 Name1 ID2 Name2
-------------------
01 A 01 A
01 A 02 B
01 A 03 C
03 C 03 C
03 C 01 A
03 C 04 G
从ID2 ID1所在的表中选择ID2,名称2
输出应为:
ID2, Name2
----------
02 B
03 C
01 A
04 G
03/C和01 A必须在这里。
如果我使用distinct,那么它将排除ID1的所有相同记录,我不想这样做。我正在使用经典ASP在选择选项列表中选择ID1组。如果选择01,则会出现ID2的选择选项列表。我只想看到ID1中没有的所有ID2
有人能帮我吗?
谢谢。我想你希望
不存在。但是您的结果集似乎与问题的描述不匹配
select id2, name2
from t
where not exists (select 1
from t t2
where t2.id1 = t.id2 and t2.name1 = t.name2
);
试试“独特的”
Select distinct ID2, Name2 From table where ID2 <> ID1
从ID2 ID1所在的表中选择distinct ID2,Name2
我认为不需要解释:
select id2, name2
from t
where (id1 <> id2) OR (name1 <> name2)
选择id2,名称2
从t
其中(id1 id2)或(名称1 name2)
您的问题并不完全清楚,假设ID1
不能等于ID2
并且name1
可以等于name2
,正确的答案是:
SELECT DISTINCT ID2, Name2 FROM tableName WHERE ID2 <> ID1
这将有助于:
select ID2,Name2 from tablename where ID1!=ID2 and Name1!=Name2
为什么03/C和01/A在结果集中?因为03/C和01/A是ID1的另一组。如果我使用distinct,那么它将排除ID1的所有相同记录,我不想这样做。我正在使用经典ASP在选择选项列表中选择ID1组。如果选择01,则会出现ID2的选择选项列表。我只想看到ID1中没有的所有ID2。谢谢。@JennyTran如果您所问的下面的答案解算器给它一个绿色的勾号,可能还有一个向上投票。它根本没有返回任何记录。据我所知,这个问题的答案对于当前的表内容和指定的输出来说已经足够好了,但是如果name1!=name2
和id1=id2
您的查询将打印此记录,但它不应该打印。应该有和而不是或@ArielGrabijas,除了相同的记录而不是相同的id。我在帖子中添加了解释和图片。谢谢
select ID2,Name2 from tablename where ID1!=ID2 and Name1!=Name2