【发布时间】:2013-04-29 23:54:44
【问题描述】:
这是我的问题,
CREATE TABLE
#table1(ID int, Fruit varchar(50), Veg varchar(50))
INSERT INTO #table1 (ID,Fruit,Veg)
VALUES (1,'Apple', 'Potato')
CREATE TABLE
#table2(ID int, Fruit varchar(50), Veg varchar(50))
INSERT INTO #table2 (ID,Fruit,Veg)
VALUES (2,'Apple', 'Potato')
SELECT * FROM #table1 INTERSECT SELECT * FROM #table2
我有两个表,我想找到两个表中相同的行,但两个表都有不同且不相关的 ID 列。有没有办法在两个表上使用 INTERSECT 或 EXCEPT,但忽略比较中的 ID?
我需要在返回的行上保留 ID,所以在上面的示例中,将返回两行,一个 ID = 1,另一个 ID = 2
如果 ID 以外的任何内容不同,则不会返回任何内容。
谢谢!
【问题讨论】:
-
如果表包含不同且不相关的 ID 列,为什么要使用 SELECT *?如果你只列出 Fruit,Veg 它应该可以正常工作,对吧?否则,您需要确定当水果/蔬菜对出现在两个表中时应该显示哪个 ID...
-
或者他可以同时显示,对吗?
-
@Abe 与相交?怎么样?
-
不抱歉,我想我正在考虑使用 JOIN 来做这件事。
-
@Abe 对,您可以通过其他方式做到这一点,但不能使用 INTERSECT。
标签: database sql-server-2008 intersect