基础问题,多表查询
超过3个表以上,每个表都有id列,行数不同,怎样使用join查询我要的结果,我是这样写的
select a.id,b.*,c.*,d.* from a
left join b on a.id=b.id
left join c on a.id=c.id
left join d on a.id=d.id
...
表a中的id是唯一的,但表b,c,d中有可能有重复的id,这样写产生了笛卡尔乘积.
正确的写法是怎样的?
[解决办法]
写得没问题,关键是不知道你要什么样的结果
[解决办法]
upup
[解决办法]
你的意思是不是不要有重复的id的列。而只取到一列,这样不合常理吧。
如果不是要重复的id列,你的写法有点问题,就是你是要有做连接还是内连接,我个人认为你是要内连接的(a表中存在的id,如果b,c,d表中没有相应的id的话就不会有该条记录出现).那就如下的写法:
select a.id,b.*,c.*,d.* from a
inner join b on a.id=b.id
inner join c on a.id=c.id
inner join d on a.id=d.id