首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

基础有关问题,多表查询

2012-01-19 
基础问题,多表查询超过3个表以上,每个表都有id列,行数不同,怎样使用join查询我要的结果,我是这样写的selec

基础问题,多表查询
超过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

热点排行