现有表 4个表
UserBase——用户基础表,以Type来区分是 个人还是企业
字段:userid
UserPersonal——个人用户
字段: tel,userid
UserCompany——企业用户
字段:tel,userid
SellInfo——供应信息表
字段:sellid,title,userid供应信息可能是个人也可能是企业用户发布的信息。
在查询sellinfo的时候需要查出发布着的联系信息。应该怎样查询呢?
UserBase——用户基础表,以Type来区分是 个人还是企业
字段:userid
UserPersonal——个人用户
字段: tel,userid
UserCompany——企业用户
字段:tel,userid
SellInfo——供应信息表
字段:sellid,title,userid供应信息可能是个人也可能是企业用户发布的信息。
在查询sellinfo的时候需要查出发布着的联系信息。应该怎样查询呢?
from UserBase a inner join UserPersonal b on a.userid=b.userid
inner join UserCompany c on a.userid=c.userid
inner join SellInfo d on a.userid=d.userid
from SellInfo t1
inner join UserBase t2 on t1.userid=t2.userid
inner join UserPersonal t3 on t3.userid=t2.userid
inner join UserCompany t4 on t4.userid=t2.userid
a.sellid,
a.title,
b.tel
from sellinfo a inner join (
select e.tel,e.userid,f.type from UserBase f,UserPersonal e where e.userid = f.userid
union all
select g.tel,g.userid,f.type from UserBase f,UserCompany g where g.userid = f.userid
) b on a.userid = b.userid
事实上既然在personal中有数据那么在company中肯定是没有的
select t1.*, t3.tel
from SellInfo t1
inner join UserBase t2 on t1.userid=t2.userid
inner join UserPersonal t3 on t3.userid=t2.userid
union
select t1.*, t3.tel
from SellInfo t1
inner join UserBase t2 on t1.userid=t2.userid
inner join UserCompany t3 on t3.userid=t2.userid