Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
Tsql 加入那不';如果一侧为空,则不排除所有记录_Tsql - Fatal编程技术网

Tsql 加入那不';如果一侧为空,则不排除所有记录

Tsql 加入那不';如果一侧为空,则不排除所有记录,tsql,Tsql,我有一套相当传统的订单输入表,除以: 命令 订单行 OrdersRowsOptions 除非需要,否则不会创建OrderRowOptions中的记录。当我创建一组连接时,如 select * from orders o inner join OrdersRows r on r.idOrder = o.idOrder inner join ordersrowsoptions ro on ro.idOrderRow = r.idOrderRow where r.idProduct =

我有一套相当传统的订单输入表,除以:

命令 订单行 OrdersRowsOptions

除非需要,否则不会创建OrderRowOptions中的记录。当我创建一组连接时,如

select * from orders o 
  inner join OrdersRows r on r.idOrder = o.idOrder 
  inner join ordersrowsoptions ro on ro.idOrderRow = r.idOrderRow
where  r.idProduct = [foo]
如果给定产品不存在ordersrowsoptions记录,则我的完整结果集为空

即使其中一个join子句中不存在记录,返回记录的正确语法是什么


thx

左连接/右连接

编辑:是的,前面给出的以下答案是正确的:

select * from orders o  
  inner join OrdersRows r on r.idOrder = o.idOrder  
  left join ordersrowsoptions ro on ro.idOrderRow = r.idOrderRow 
where  r.idProduct = [foo] 

左连接/右连接

编辑:是的,前面给出的以下答案是正确的:

select * from orders o  
  inner join OrdersRows r on r.idOrder = o.idOrder  
  left join ordersrowsoptions ro on ro.idOrderRow = r.idOrderRow 
where  r.idProduct = [foo] 
当然,您不应该在任何查询中使用select*,尤其是在执行联接时。重复的字段只会浪费服务器和网络资源

由于您似乎不熟悉左连接,您可能还需要理解以下内容中的概念:

当然,您不应该在任何查询中使用select*,尤其是在执行联接时。重复的字段只会浪费服务器和网络资源

由于您似乎不熟悉左连接,您可能还需要理解以下内容中的概念:

根据连接的哪一侧可能没有行,您可能正在寻找左连接(或右连接)。

根据连接的哪一侧可能没有行,您可能正在寻找左连接(或右连接)。

有趣的是,您想获得所有包含该产品的订单吗?另一个帖子是正确的,您必须使用左或右外部连接。但是,如果您想获得包含该产品的整个订单,那么您需要一个更复杂的where子句。

有趣的是,您想获得包含该产品的所有订单吗?另一个帖子是正确的,您必须使用左或右外部连接。但是,如果您想要获得包含该产品的整个订单,那么您需要一个更复杂的where子句。

为什么要使用-1,亲爱的匿名破坏者?问题是:“即使其中一个join子句中不存在记录,返回记录的正确语法是什么?”这里的其他答案类似,但不是否决。确实需要更多的信息。详细说明你的答案。我没有投票,但我确实考虑过了。我输入了更多的答案,在输入过程中,我看到其他人给出了一个更完整的答案。我不想通过快速编辑来“独家”获得更完整的答案(与我的答案完全相同)。但现在我会编辑它,就像你喜欢的。否决票删除现在更多的信息提供。对不起,我会投票反对我自己没有点击添加评论。为什么-1,亲爱的匿名破坏者?问题是:“即使其中一个join子句中不存在记录,返回记录的正确语法是什么?”这里的其他答案类似,但不是否决。确实需要更多的信息。详细说明你的答案。我没有投票,但我确实考虑过了。我输入了更多的答案,在输入过程中,我看到其他人给出了一个更完整的答案。我不想通过快速编辑来“独家”获得更完整的答案(与我的答案完全相同)。但现在我会编辑它,就像你喜欢的。否决票删除现在更多的信息提供。对不起,我会投票反对自己没有点击添加评论之前。