gpt4 book ai didi

sql - 连接 T-SQL 中的顶级记录

转载 作者:行者123 更新时间:2023-12-04 16:41:05 25 4
gpt4 key购买 nike

SELECT MD.*, Contact.FirstName 
FROM MerchantData MD
JOIN Merchant M ON M.MerchID = MD.MerchID
JOIN (SELECT TOP 1 * FROM Location WHERE Location.BusID = MD.BusID) L ON L.BusID=MD.BusID
AND L.Deleted = 0
JOIN Contact ON Contact.ContactID = L.PrincipalID

我正在使用 SQLSERVER 2008 并尝试编写此 SQL 语句。有时,busid 有多个位置,我只想加入第一个找到的位置。我在“Location.BusID = MD.BusID”部分出现错误,因为 MD.BusID 无法绑定(bind)。是否可以在此联接的嵌套选择语句中使用 MD 表,或者是否有其他方法可以完成此操作?

我正在考虑使用嵌套查询将数据放在列列表中,以便在那里直接获取联系人数据。

最佳答案

我认为拥有完整结果集的子查询会更简单:

SELECT MD.*, Contact.FirstName 
FROM MerchantData MD
JOIN Merchant M ON M.MerchID = MD.MerchID
JOIN (SELECT BusID, MAX(PrincipalID)
FROM Location
WHERE Deleted = 0
GROUP BY BusID) L ON L.BusID=MD.BusID
JOIN Contact ON Contact.ContactID = L.PrincipalID

您仍然可以根据 BusID 获得一条记录在 JOIN但它不相关。

关于sql - 连接 T-SQL 中的顶级记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014506/

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