Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
Sql server 标记2个数据集之间缺少记录_Sql Server - Fatal编程技术网

Sql server 标记2个数据集之间缺少记录

Sql server 标记2个数据集之间缺少记录,sql-server,Sql Server,标题并不能很好地解释这个问题,因此我将举一个例子: 表1(OrderNum,OrderLine)-所有已创建的订单行。 表2(OrderNum,OrderLin)-要立即打印的订单行 表2在表1中始终有匹配项,因为它是根据表1填充的,但有时表1中的订单中缺少一行。例如: 表1: OrderNum, OrderLine 100, 1 100, 2 100, 3 100, 4 101, 1 102, 1 102, 2 表2: OrderNum, OrderLine 100, 1 100, 2 10

标题并不能很好地解释这个问题,因此我将举一个例子:

表1(OrderNum,OrderLine)-所有已创建的订单行。 表2(OrderNum,OrderLin)-要立即打印的订单行

表2在表1中始终有匹配项,因为它是根据表1填充的,但有时表1中的订单中缺少一行。例如:

表1:

OrderNum, OrderLine
100, 1
100, 2
100, 3
100, 4
101, 1
102, 1
102, 2
表2:

OrderNum, OrderLine
100, 1
100, 2
100, 4
101, 1
在本例中,我需要打印订单100的所有4行,第3行标记为缺失,以及订单101的所有行,但订单102中没有一行。显然,我的桌子比这个大得多,但这总结了我的困境。我无法控制这两个表的填充方式

如果我在OrderNum和OrderLine上将表2连接到表1,那么我也会得到OrderNum 102,我不希望这样。如果我只在OrderNum上加入,那么表2中的每一行都会得到100次的重复,我如何找到没有重复的1记录


希望这对我的问题有意义。我曾尝试过谷歌搜索,但这些术语太通用了,我得到了许多不相关的结果。

使用
左连接和
存在()

rextester演示:

返回:

+----------+-----------+---------+
| OrderNum | OrderLine | Missing |
+----------+-----------+---------+
|      100 |         1 |         |
|      100 |         2 |         |
|      100 |         3 | Flag    |
|      100 |         4 |         |
|      101 |         1 |         |
+----------+-----------+---------+

使用
左连接和
存在()

rextester演示:

返回:

+----------+-----------+---------+
| OrderNum | OrderLine | Missing |
+----------+-----------+---------+
|      100 |         1 |         |
|      100 |         2 |         |
|      100 |         3 | Flag    |
|      100 |         4 |         |
|      101 |         1 |         |
+----------+-----------+---------+

在OrderNum列和OrderLine列上都应该使用table1LEFT JOIN Table2。在OrderNum列和OrderLine列上都应该使用table1LEFT JOIN Table2。我总是忘记Exists可以引用外部查询,我曾经知道它。不管怎样,谢谢你,工作得很好@蚯蚓很乐意帮忙!我总是忘记存在可以引用的外部查询,我知道它一次。不管怎样,谢谢你,工作得很好@蚯蚓很乐意帮忙!