是否可以在2个表之间进行CROSS JOIN,然后是左连接到第3个表,然后是可能更多的左连接?我正在使用SQL Server 2000/2005。交叉连接,然后是左连接
我正在运行以下查询,这是非常straightforward国际海事组织,但我得到一个错误。
select P.PeriodID,
P.PeriodQuarter,
P.PeriodYear,
M.Name,
M.AuditTypeId,
A.AuditId
from Period P, Member M
LEFT JOIN Audits A
ON P.PeriodId = A.PeriodId
WHERE
P.PeriodID > 29 AND P.PeriodID < 38
AND M.AuditTypeId in (1,2,3,4)
order by M.Name
我收到以下错误:
Msg 4104, Level 16, State 1, Line 1 The multi-part identifier "P.PeriodId" could not be bound.
如果我删除了LEFT JOIN的查询工作。但是,我需要LEFT JOIN,因为我需要从其他表格中提取更多信息。
我在做什么错?有没有更好的方法呢?
Thnx。这使得我现在更清楚了。做一个交叉连接是我能想到解决我的特殊问题的唯一方法。 '* ='操作符虽然做了什么? – 2010-07-13 07:43:22
@Saajid Imsail * =是隐式联接的旧式LEFT JOIN运算符。 – 2010-07-13 13:56:13
该运算符不可靠且不被使用,正确的修复方法是使用显式连接。没有任何理由不在任何查询中使用显式连接。 – HLGEM 2011-09-02 17:25:35