【发布时间】:2013-01-30 16:21:13
【问题描述】:
我有两个查找表,我想将它们内部连接在一起,但是我只想在我的数据表上进行左连接。
select * from CLIENT
LEFT JOIN [ENTRY]
on [ENTRY].ENTRY_CODE = CLIENT.CLIENT_COUNTY
and [ENTRY].ENTRY_RECD = 'A'
INNER JOIN [ENTRY_TYPES]
on [ENTRY_TYPES].ENTRY_TYPES_FileRecordID = [ENTRY].ENTRY_TYPE
and [ENTRY_TYPES].ENTRY_TYPES_CODE = 'COUNTY'
and [ENTRY_TYPES].ENTRY_TYPES_RECD = 'A'
where CLIENT_RECD = 'A'
因此,如果 ENTRY_TYPES_FileRecordID = ENTRY_TYPE 失败,我不希望 ENTRY 记录可作为左连接项用于连接到 CLIENT。
上述代码在ENTRY 上的左连接的编写方式类似于内连接。
【问题讨论】:
-
如果您修改
INNER JOIN以允许ENTRY中的NULL值的可能性,并且您不会在WHERE中再次破坏它,一切都会好起来的。或者在第一次之后继续使用LEFT OUTER JOINs,因为那是你真正想要的。
标签: sql sql-server-2005 join