【发布时间】:2016-03-18 17:05:52
【问题描述】:
我有两个来自查询的结果集,它们都有一个共同的 MessageLogID int。我想进行内部连接并获取更大的 tbl1 列表,并且只返回与 MessageLogID int 键上的 tbl2 行匹配的行。我看到的问题是 tbl1.messagelogid 无法绑定,因为它看不到选择的 tbl1 和 tbl2 表。
select
(select messageLogId, localName, action, remoteName, localHost, dateTime, message from Messagelog as mm where (message like '%error>%' or message like '% <nak status ="1">%')
) as tbl1,
(SELECT * FROM
(
select substring(m.message, charindex('<MessageID>', m.message)+11, charindex('</MessageID>', m.message)-charindex('<MessageID>', m.message)-11) as SQLmessageID from messagelog m
where message like '%<NCPDPID>1234567</NCPDPID>%' and dateTime > '3/01/2016'
) a JOIN
(
select
substring(r.message, charindex('<RelatesToMessageID>', r.message)+20, charindex('</RelatesToMessageID>', r.message)-charindex('<RelatesToMessageID>', r.message)-20) as SQLRelatesMessageID,
message,
messagelogid from messagelog r
where
dateTime > '3/01/2016' AND
message LIKE ('%<RelatesToMessageID>%</RelatesToMessageID>%')
and message LIKE ('%<Error>%</Error>%')
) b ON b.SQLRelatesMessageID = a.SQLmessageID)
as tbl2
from messagelog where tbl1.messagelogid = tbl2.messagelogid
【问题讨论】:
标签: sql join sql-server-2012 inner-join