Sql server SQL Server查询中的左联接中的右联接
我正在将一些MS Access查询转换为Transact-SQL格式,遇到了一些问题。有没有办法在联接中写入联接?Sql server SQL Server查询中的左联接中的右联接,sql-server,join,left-join,right-join,Sql Server,Join,Left Join,Right Join,我正在将一些MS Access查询转换为Transact-SQL格式,遇到了一些问题。有没有办法在联接中写入联接? 例如: LEFT JOIN (TaxInfo RIGHT JOIN TaxInfoJackpot ON TaxInfo.RefNumber = TaxInfoJackpot.RefNumber) ON HandPay.SlipNumber = TaxInfoJackpot.SlipNumber 当然,这只是一个更大查询的快照。但是,如果有人知道这是否可能
例如:
LEFT JOIN (TaxInfo RIGHT JOIN TaxInfoJackpot
ON TaxInfo.RefNumber = TaxInfoJackpot.RefNumber)
ON HandPay.SlipNumber = TaxInfoJackpot.SlipNumber
当然,这只是一个更大查询的快照。但是,如果有人知道这是否可能,任何帮助都将是巨大的
提前感谢。您可以通过子查询来完成此操作
LEFT JOIN (
SELECT *
FROM TaxInfo ti
RIGHT JOIN TaxInfoJackpot j ON ti.RefNumber = j.RefNumber
) tij ON HandPay.SlipNumber = tij.SlipNumber
但我不确定你是否真的需要这样做。我想你可以用普通连接来完成
FROM HandPay h
RIGHT JOIN TaxInfoJackpot j ON h.SlipNumber = j.SlipNumber
LEFT JOIN TaxInfo ti ON j.RefNumber = ti.RefNumber;
您可以通过子查询来实现这一点
LEFT JOIN (
SELECT *
FROM TaxInfo ti
RIGHT JOIN TaxInfoJackpot j ON ti.RefNumber = j.RefNumber
) tij ON HandPay.SlipNumber = tij.SlipNumber
但我不确定你是否真的需要这样做。我想你可以用普通连接来完成
FROM HandPay h
RIGHT JOIN TaxInfoJackpot j ON h.SlipNumber = j.SlipNumber
LEFT JOIN TaxInfo ti ON j.RefNumber = ti.RefNumber;
如果可能的话,我倾向于让我所有的连接都是顺序的,并朝着相同的方向流动(我总是尝试重新排序,这样才有可能)。左连接/右连接/开/关对任何人来说都是非常混乱的,包括我自己,我已经做了很长时间了。Access所输出(并接受)的奇怪语法肯定不会给任何人带来任何好处 我不确定当前语法是否提供了您期望的结果,但是您能将其与此格式进行比较,看看它们是否相同吗?如果没有样本数据和期望的结果,很难确定
SELECT ...
FROM dbo.TaxInfoJackPot AS jp
LEFT OUTER JOIN dbo.HandPay AS hp
ON hp.SlipNumber = jp.SlipNumber
LEFT OUTER JOIN dbo.TaxInfo AS ti
ON jp.RefNumber = ti.RefNumber;
如果可能的话,我倾向于让我所有的连接都是顺序的,并朝着相同的方向流动(我总是尝试重新排序,这样才有可能)。左连接/右连接/开/关对任何人来说都是非常混乱的,包括我自己,我已经做了很长时间了。Access所输出(并接受)的奇怪语法肯定不会给任何人带来任何好处 我不确定当前语法是否提供了您期望的结果,但是您能将其与此格式进行比较,看看它们是否相同吗?如果没有样本数据和期望的结果,很难确定
SELECT ...
FROM dbo.TaxInfoJackPot AS jp
LEFT OUTER JOIN dbo.HandPay AS hp
ON hp.SlipNumber = jp.SlipNumber
LEFT OUTER JOIN dbo.TaxInfo AS ti
ON jp.RefNumber = ti.RefNumber;
+1用于以相同方式顺序和流动写入连接。SQL更容易理解,也更容易通过这种方式“可视化”。应该是吗?:
从dbo.HandPay作为hp离开外部加入dbo.TaxInfoJackPot作为jp…
@ypercube我尝试了一下;如果没有整个问题,我不确定。据我们所知,查询以FROM HandPay RIGHT JOIN somethingElse+1开始,用于以相同的方式顺序和流动地写入连接。SQL更容易理解,也更容易通过这种方式“可视化”。应该是吗?:从dbo.HandPay作为hp离开外部加入dbo.TaxInfoJackPot作为jp…
@ypercube我尝试了一下;如果没有整个问题,我不确定。据我们所知,该查询以FROM HandPay RIGHT JOIN somethingsql服务器开始,使用您在此处展示的特定语法应该可以。您刚刚试过运行那个查询吗?SQL Server应该可以使用您在这里展示的特定语法。你刚才试过运行那个查询吗?