你的意思可能是 a表 state 字段变化,b 表记录 a 表变态前的状态。 c 表记录 b 表变态前的状态。 这样,应该是根据原始表的 id 主键来查询。
select state from a left join #temp on a.id=#temp.id ( select state from b left join c on b.id=c.id) #temp
a b c 表里都有一个主键orderid
表ab用触发器搞它的下级表,查的话只要查表c
select a.orderid,isnull(t.state,a.state) from a left join (select b.orderid,isnull(c.state,b.state) b left join c on b.orderid = c.orderid) t on a.orderid = t.orderid
select a.orderid,isnull(t.state,a.state) from a left join (select b.orderid,isnull(c.state,b.state) state from b left join c on b.orderid = c.orderid) t on a.orderid = t.orderid
a表 state 字段变化,b 表记录 a 表变态前的状态。 c 表记录 b 表变态前的状态。
这样,应该是根据原始表的 id 主键来查询。
left join #temp on a.id=#temp.id
(
select state from b
left join c on b.id=c.id) #temp