表一是表二的子集,有必要用左连接吗?直接等连就行了,用个union全解决了
select teacher_id as id,people_name as name
from 表1,表2
where
表1.teacher_id=表2.people_id
union select student_id as id,people_name as name
from 表1,表2
where
表1.student_id=表2.people_id
select b1.people_name teacher_name, b2.people_name student_name
from 表1
left join 表2 b1 on teacher_id = b1.people_id
left join 表2 b2 on student_id = b2.people_id
select b.people_name,c.people_name
from 表1 a,表2 b,表2 c
where a.teacher_id=b.people_id and a.student_id=c.people_id
例如: select *
from CT_CYK_CustomerBaseInfo
LEFT OUTER JOIN T_BD_Customer ON CT_CYK_CustomerBaseInfo.CFCustNameID=T_BD_Customer.FID
and CT_CYK_CustomerBaseInfo.CFMainLinkMenID=T_BD_Customer.FID;
把客户的基本信息表进行的重新命名,然后修改了sql语句,取得成功,结果如下:
select *
from CT_CYK_CustomerBaseInfo
LEFT OUTER JOIN T_BD_Customer ON CT_CYK_CustomerBaseInfo.CFCustNameID=T_BD_Customer.FID
LEFT OUTER JOIN T_BD_Customer as linkpeople ON
CT_CYK_CustomerBaseInfo.CFMainLinkMenID=linkpeople.FID;
这样就实现了在一个数据库表中同时两次左联接。