【发布时间】:2015-11-05 10:20:42
【问题描述】:
我正在尝试对一个表进行多个左连接以检索一行信息。
FROM THeaders th
LEFT JOIN (SELECT * FROM TItems) ti
ON th.rtid = ti.rtid
LEFT JOIN (SELECT TOP 1 MC, GH, GC, DI, DC FROM Prod **WHERE ti.MC = MC**) p
ON ti.MC = p.MC AND (ti.AI IS NULL OR EXISTS (SELECT * FROM Prod WHERE MC = ti.MC))
这个想法是从'ti'中获取所有信息,并且从'p'表中只获取MC等于ti.MC的一行。 'p' 表包含数百行具有相同 MC 的行,但可以假定所有其他字段具有相同的值(GH、GC、DI、DC)
标有星号的部分是我遇到问题的部分。我认为这是因为,正如错误“ti.MC 无法绑定所说”,“ti”的连接尚未初始化,因此不能在另一个连接的选择中使用。
有什么办法可以让我做到这一点?我目前的工作是看看我是否可以使用嵌套连接或可能设置要使用的变量,但目前两者都没有成果。
谢谢
【问题讨论】:
-
您使用的是哪个 dbms?
-
Microsoft SQL Server
标签: sql sql-server join where