3个表join on的sql语句是什么

wgyygw5 2007-02-06 11:03:37
我有3个表,想把他们join到一起,怎么有重复的列
以下是我的代码:
select prjcourse.id1 AS 项目ID,prjinfo.prjname AS 项目名,prjcourse.id2 AS 阶段ID,prjphase.phasename AS 阶段名,
prjcourse.dttime AS 阶段所用时间 from prjcourse
JOIN prjinfo
on prjcourse.id1=prjinfo.prjid
JOIN prjphase
on prjcourse.id2=prjphase.phaseid

3个表分别是
prjcourse:id1,id2,id3,time

prjinfo:prjid,prjname

prjphase:phaseid,phasename

结果怎么出现了重复的:
项目id 项目名 阶段id 阶段名 时间
1 项目1 1 项目1阶段1 10
1 项目1 1 项目2阶段1 10
2 项目2 2 项目1阶段1 10
2 项目2 2 项目2阶段2 10
。。。。。。。

...全文
772 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
过客猫2022 2007-02-26
  • 打赏
  • 举报
回复
楼上有答案了
stbigcrab 2007-02-25
  • 打赏
  • 举报
回复
select prjcourse.id1 AS 项目ID,prjinfo.prjname AS 项目名,prjcourse.id2 AS 阶段ID,prjphase.phasename AS 阶段名,
prjcourse.dttime AS 阶段所用时间 from prjinfo inner join prjcourse inner join prjphase on prjcourse.id2=prjphase.phaseid on prjcourse.id1=prjinfo.prjid

如果prjionfo有可能有空的情况,就用左联结或右联结可以解决问题
wgyygw5 2007-02-13
  • 打赏
  • 举报
回复
按照 h98458 的方法怎么还是一样的效果呢
极速小王子 2007-02-12
  • 打赏
  • 举报
回复
select xx1, xx2, xx3 FROM T1
JOIN T2 ON xxx2
JOIN T3 ON XXX3
...
JOIN TN ON XXXn
h98458 2007-02-06
  • 打赏
  • 举报
回复
试试用子查询:
select a.id1 AS 项目ID,b.prjname AS 项目名,a.id2 AS 阶段ID,c.phasename AS 阶段名,
a.time AS 阶段所用时间
from prjcourse a,prjinfo b,prjphase c
where a.id1=b.prjid and b.id2=c.phaseid
laowang2 2007-02-06
  • 打赏
  • 举报
回复
mark

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧