gpt4 book ai didi

sql - MS Access 中附加条件的左连接

转载 作者:行者123 更新时间:2023-12-02 03:35:52 26 4
gpt4 key购买 nike

我有以下 T-SQL 查询(一个简单的测试用例)在 MS SQL 中运行良好,但无法在 MS Access (JET-SQL) 中获得等效的查询。问题是 LEFT JOIN 中的附加条件。 如何在 MS Access 中执行此操作?

T-SQL:

SELECT * FROM A 
LEFT OUTER JOIN B ON A.ID = B.A_ID
AND B.F_ID = 3

JET-SQL(我目前拥有的但使 Access 崩溃!):

SELECT * FROM dbo_A 
LEFT JOIN dbo_B ON (dbo_A.ID = dbo_B.A_ID AND dbo_B.F_ID = 3)

最佳答案

您需要使用子选择来应用条件:

  SELECT *
FROM dbo_A LEFT JOIN
[SELECT dbo_B.* FROM dbo_B WHERE dbo_B.F_ID = 3]. AS dbo_B
ON dbo_A.ID = dbo_B.A_ID;

如果您在打开“SQL 92”兼容模式的情况下运行 Access,则可以执行更标准的操作:

  SELECT *
FROM dbo_A LEFT JOIN
(SELECT dbo_B.* FROM dbo_B WHERE dbo_B.F_ID = 3) AS dbo_B
ON dbo_A.ID = dbo_B.A_ID;

您需要在 Access 中对其进行编辑吗?如果没有,只需使用带有 native T-SQL 的直通查询。如果是这样,我可能会为此创建一个服务器端 View ,并且如果文字值是您要参数化的值(即 F_ID=3 实际上是 F_ID=N,其中 N是运行时选择的值)。

顺便说一句,我在 Access 中工作时每天都会编写这些子选择派生表 SQL 语句。这没什么大不了的。

关于sql - MS Access 中附加条件的左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2015878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com