table1(id1)、table2(id2,id1,no)、table3(no,name)
select t3.name from table1 t1(nolock) inner join table2 t2(nolock)
on t1.id1 = t2.id1
inner join table3 t3(nolock)
on t2.no = t3.no
第2张表里面对应的no字段有可能为空,为空的时候name就为空,这个要怎么查询才不会有冗余,请指教
table1(id1)、table2(id2,id1,no)、table3(no,name)
select t3.name from table1 t1(nolock) inner join table2 t2(nolock)
on t1.id1 = t2.id1
inner join table3 t3(nolock)
on t2.no = isnull(t3.no,'')
上面那句话写错了
是第2张表里面对应的no字段有可能为空
select ty.name from
(select * fromtable3 t3(nolock) right join
(select * from table1 t1(nolock) inner join table2 t2(nolock) on t1.id1 = t2.id1) tx
on t3.no = tx.no) ty
where ty.no isnot null;