相关疑难解决方法(0)

如何从子查询(在SQL Server中)中选择多个列,这些列应该为主查询中的每个记录创建一条记录(选择前1)?

我知道我可以使用以下语法从子查询中选择一列:

SELECT A.SalesOrderID, A.OrderDate,
       (
       SELECT TOP 1 B.Foo
       FROM B
       WHERE A.SalesOrderID = B.SalesOrderID
       ) AS FooFromB
FROM A
WHERE A.Date BETWEEN '2000-1-4' AND '2010-1-4'
Run Code Online (Sandbox Code Playgroud)

但是使用子查询中的多个列的正确语法是什么(在我的例子中是select top 1子查询)?非常感谢你.

sql

100
推荐指数
4
解决办法
35万
查看次数

加入T-SQL中的顶级记录

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
Run Code Online (Sandbox Code Playgroud)

我正在使用SQLSERVER 2008并尝试编写此SQL语句.有时候busid有多个位置,我想只加入第一个找到的位置.我在"Location.BusID = MD.BusID"部分收到错误,因为MD.BusID无法绑定.是否可以在此联接中的嵌套选择语句中使用MD表,还是有另一种方法可以实现此目的?

我正在通过列列表中的嵌套查询来放置数据,以便在那里干净地获取联系人数据.

sql t-sql join

5
推荐指数
1
解决办法
4692
查看次数

标签 统计

sql ×2

join ×1

t-sql ×1