Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有UNION或INTERSECT的SQL查询_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

具有UNION或INTERSECT的SQL查询

具有UNION或INTERSECT的SQL查询,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有两个SQL表,如下所示,需要对数据运行一些测试和查询。这些表格包含一些示例数据: Table A ID groupName value id2000 groupA 1 id2000 groupA 2 id2000 groupA 3 id3000 groupB 1 id3000 groupB 2 Table B ID groupNameB valueB id2000 gro

我有两个SQL表,如下所示,需要对数据运行一些测试和查询。这些表格包含一些示例数据:

Table A
ID       groupName    value
id2000   groupA       1
id2000   groupA       2
id2000   groupA       3
id3000   groupB       1
id3000   groupB       2

Table B
ID       groupNameB    valueB
id2000   groupA        1
id2000   groupA        2
id2000   groupA        -9
id3000   groupB        1
id3000   groupB        -9
这些表是相似的,但实际上是不同的(它们有不同的数据,我只是为了堆栈溢出而缩短了它)

我需要的是一年,将两者结合起来,但给出表a中的值,而不是表B中的值

因此,使用上述数据,我将得到以下结果集:

id2000  groupA 3
id3000  groupB 2
我想这就像是一个非工会?

你想使用的工会

它从第一个查询中删除第二个查询中的行。它不会返回query2中不在query1中的行

select id, groupName, value
from tableA
except
select id, groupNameB, valueB
from tableB
你想用

它从第一个查询中删除第二个查询中的行。它不会返回query2中不在query1中的行

select id, groupName, value
from tableA
except
select id, groupNameB, valueB
from tableB
你想用

它从第一个查询中删除第二个查询中的行。它不会返回query2中不在query1中的行

select id, groupName, value
from tableA
except
select id, groupNameB, valueB
from tableB
你想用

它从第一个查询中删除第二个查询中的行。它不会返回query2中不在query1中的行

select id, groupName, value
from tableA
except
select id, groupNameB, valueB
from tableB

如果我理解正确,这将起作用。至少我的样本数据是这样的

select Id, groupName, value
  FROM tableA 
EXCEPT
select Id, groupName, value
  FROM tableB

如果我理解正确,这将起作用。至少我的样本数据是这样的

select Id, groupName, value
  FROM tableA 
EXCEPT
select Id, groupName, value
  FROM tableB

如果我理解正确,这将起作用。至少我的样本数据是这样的

select Id, groupName, value
  FROM tableA 
EXCEPT
select Id, groupName, value
  FROM tableB

如果我理解正确,这将起作用。至少我的样本数据是这样的

select Id, groupName, value
  FROM tableA 
EXCEPT
select Id, groupName, value
  FROM tableB


连接了这两个表,但给出了表A中的值,而不是表B中的值
描述了外部连接和WHERE。使用外部连接并使用WHERE表B限制如何。[任何列]=null?编辑:@RobertHarvey-gg,比我快:)这不是一个计数。它们在ID和groupName上相关。@chris-和value;别错过了!您应该确保没有多个行也具有相同的(id、组、值)元组-如果有,它们可能会造成相当多的麻烦。一些ddl和示例数据如何?您说您的ID列是PK,但根据您的示例数据,这显然是不可能的。我的最佳猜测是,您希望在id和值上有一个左连接,其中b.value为null
将这两个值连接起来,但给出了表a中的值,而不是表b中的值
描述了一个外部连接和一个where。使用外部连接和使用where表b进行限制如何。[任何列]=null?编辑:@RobertHarvey-gg,比我快:)这不是一个计数。它们在ID和groupName上相关。@chris-和value;别错过了!您应该确保没有多个行也具有相同的(id、组、值)元组-如果有,它们可能会造成相当多的麻烦。一些ddl和示例数据如何?您说您的ID列是PK,但根据您的示例数据,这显然是不可能的。我的最佳猜测是,您希望在id和值上有一个左连接,其中b.value为null
将这两个值连接起来,但给出了表a中的值,而不是表b中的值
描述了一个外部连接和一个where。使用外部连接和使用where表b进行限制如何。[任何列]=null?编辑:@RobertHarvey-gg,比我快:)这不是一个计数。它们在ID和groupName上相关。@chris-和value;别错过了!您应该确保没有多个行也具有相同的(id、组、值)元组-如果有,它们可能会造成相当多的麻烦。一些ddl和示例数据如何?您说您的ID列是PK,但根据您的示例数据,这显然是不可能的。我的最佳猜测是,您希望在id和值上有一个左连接,其中b.value为null
将这两个值连接起来,但给出了表a中的值,而不是表b中的值
描述了一个外部连接和一个where。使用外部连接和使用where表b进行限制如何。[任何列]=null?编辑:@RobertHarvey-gg,比我快:)这不是一个计数。它们在ID和groupName上相关。@chris-和value;别错过了!您应该确保没有多个行也具有相同的(id、组、值)元组-如果有,它们可能会造成相当多的麻烦。一些ddl和示例数据如何?您说您的ID列是PK,但根据您的示例数据,这显然是不可能的。我的最佳猜测是,您希望在id和value上有一个左连接,其中b.value为null