这样的2个表联合查询的sql语句如何写啊?(急)谢谢大家了!

woaitiyu 2008-09-03 04:05:50
现在有两个表,1个user表,一个审核表(checkList),user表中有id,name两列,而checklist表中有chk1id,chk1date,chk2id,chk2date,chk3id,chk3date,chk4id,chk4date,chk5id,chk5date,其中chk1id,chk2id,chk3id,chk4id,chk5id为user表中对应的id,其中checklist表每一行的chkid几列中每一列的chkid并不相同,现在想查找出类似如下格式的数据,chk1id,chk1name,chk1date,chk2id,chk2name,chk2date,chk3id,chk3name,chk3date,chk4id,chk4name,chk4date,chk5id,chk5name,chk5date,应该如何写这个sql啊,知道的朋友帮下忙吧,谢谢了!
...全文
200 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaitiyu 2008-09-03
  • 打赏
  • 举报
回复
在别的朋友的帮助下解决了!谢谢楼上的朋友!
richard_2010 2008-09-03
  • 打赏
  • 举报
回复
LZ的表名命名太搞了,实在是看不下去.
~青峰~ 2008-09-03
  • 打赏
  • 举报
回复
不知道对不对,楼主看看


Select chk1.chk1id,chk1.chk1name,chk1.chk1date,chk2.chk2id,chk2.chk2name,chk2.chk2date from
(select rownum as rid,a.chk1id,b.name as chk1name,a.chk1date from tmp_chklist a left join tmp_user b on a.chk1id=b.id) chk1
inner join
(select rownum as rid,a.chk2id,b.name as chk2name,a.chk2date from tmp_chklist a left join tmp_user b on a.chk2id=b.id) chk2
on chk1.rid=chk2.rid
forevertraveller 2008-09-03
  • 打赏
  • 举报
回复
或者干脆多left join 几次

select check.id1,u1.name,check.chkdate1, check.id2,u2.name,check.chkdate2, ...
from checkList check left join user u1 on u1.id = check.chkid1
left join user u2 on u2.id = check.chkid2
...

效果应当和上面是一样的
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复
你的checkList 没有一个ID号 和 user表对应么?
试试下面的不行, 你发到sql专区吧。。。。
希望有人能帮你解决这个问题。


select * //主要你那个chkdate那几个不知道怎么搞。
from user u left join checkList ch on u.id in(ch.chk1id,ch.chk2id,ch.chk3id,ch.chk4id,ch.chk5id)
forevertraveller 2008-09-03
  • 打赏
  • 举报
回复
chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date
都是字段名啊

试试这个
select check.chk1id,(select name from user where user.id=check.chk1id) check.name1,check.chkdate1
from checkList check
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复
这样的表结构不能动了?
哪有这样的表结构。。。。

你做一个 chkid 和 chkdate

不就可以了。。。
woaitiyu 2008-09-03
  • 打赏
  • 举报
回复
详细如下图:

user表:
id name
001 admin
002 abc
003 maike
004 tom

checkList表

chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date
001 2008-09-01 002 2008-09-01 002 2008-09-01 003 2008-09-01 001 2008-09-01
001 2008-09-01 003 2008-09-01 001 2008-09-01 003 2008-09-01 003 2008-09-01
003 2008-09-01 001 2008-09-01 002 2008-09-01 001 2008-09-01 002 2008-09-01
002 2008-09-01 002 2008-09-01 004 2008-09-01 003 2008-09-01 001 2008-09-01

我想要的结果

chk1id chk1name chk1date chk2id chk2name chk2date chk3id chk3name chk3date chk4id chk4name chk4date
001 admin 2008-09-01 002 abc 2008-09-01 002 abc 2008-09-01 003 maike 2008-09-01
001 admin 2008-09-01 003 maike 2008-09-01 001 admin 2008-09-01 003 maike 2008-09-01
003 maike 2008-09-01 001 admin 2008-09-01 002 abc 2008-09-01 001 admin 2008-09-01
002 abc 2008-09-01 002 abc 2008-09-01 004 tom 2008-09-01 003 maike 2008-09-01
woaitiyu 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 huangyangweiyue 的回复:]
chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date

这些是checkList表的字段名么?
[/Quote]

是的!
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复
chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date

这些是checkList表的字段名么?

forevertraveller 2008-09-03
  • 打赏
  • 举报
回复
明白了。应该是这个:
select check.id,u.name,check.chkdate
from checkList check left join user u on u.id = check.chkid
woaitiyu 2008-09-03
  • 打赏
  • 举报
回复
也许我没说清楚!现画了个图如下:

详细如下图:

user表:
id name
001 admin
002 abc
003 maike
004 tom

checkList表
chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date
001 2008-09-01 002 2008-09-01 002 2008-09-01 003 2008-09-01 001 2008-09-01
001 2008-09-01 003 2008-09-01 001 2008-09-01 003 2008-09-01 003 2008-09-01
003 2008-09-01 001 2008-09-01 002 2008-09-01 001 2008-09-01 002 2008-09-01
002 2008-09-01 002 2008-09-01 004 2008-09-01 003 2008-09-01 001 2008-09-01

我想要的结果
chk1id chk1name chk1date chk2id chk2name chk2date chk3id chk3name chk3date chk4id chk4name k4date
001 admin 2008-09-01 002 abc 2008-09-01 002 abc 2008-09-01 003 maike 2008-09-01
001 admin 2008-09-01 003 maike 2008-09-01 001 admin 2008-09-01 003 maike 2008-09-01
003 maike 2008-09-01 001 admin 2008-09-01 002 abc 2008-09-01 001 admin 2008-09-01
002 abc 2008-09-01 002 abc 2008-09-01 004 tom 2008-09-01 003 maike 2008-09-01
woaitiyu 2008-09-03
  • 打赏
  • 举报
回复
也许我没说清楚!现画了个图如下:

详细如下图:

user表:
id name
001 admin
002 abc
003 maike
004 tom

checkList表

chk1id chk1date chk2id chk2date chk3id chk3date chk4id chk4date chk5id chk5date
001 2008-09-01 002 2008-09-01 002 2008-09-01 003 2008-09-01 001 2008-09-01
001 2008-09-01 003 2008-09-01 001 2008-09-01 003 2008-09-01 003 2008-09-01
003 2008-09-01 001 2008-09-01 002 2008-09-01 001 2008-09-01 002 2008-09-01
002 2008-09-01 002 2008-09-01 004 2008-09-01 003 2008-09-01 001 2008-09-01

我想要的结果

chk1id chk1name chk1date chk2id chk2name chk2date chk3id chk3name chk3date chk4id chk4name chk4date
001 admin 2008-09-01 002 abc 2008-09-01 002 abc 2008-09-01 003 maike 2008-09-01
001 admin 2008-09-01 003 maike 2008-09-01 001 admin 2008-09-01 003 maike 2008-09-01
003 maike 2008-09-01 001 admin 2008-09-01 002 abc 2008-09-01 001 admin 2008-09-01
002 abc 2008-09-01 002 abc 2008-09-01 004 tom 2008-09-01 003 maike 2008-09-01
forevertraveller 2008-09-03
  • 打赏
  • 举报
回复
看的不是忒明白, 可以试试这个:
select check.id,u.name,check.chkdate
from checkList check left join user u on u.id = check.chkid
akun1982 2008-09-03
  • 打赏
  • 举报
回复
select u.id ,u.name,check.chkdate
from user u ,checkList where u.id = check.chkid
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复

select u.id,u.name,check.chkdate
from user u join checkList check on u.id = check.chkid

楼主急了半天 不知道行不行了撒。。。
arthas_sh 2008-09-03
  • 打赏
  • 举报
回复
多表查询,或者左连接都可以.真的没看懂LZ写的东西.
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复

select u.id,u.name,check.chkdate
from user u join checkList check on u.id = check.chkid



下面写错了
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复
如果我理解你的意思没错,你可以结贴了。
huangyangweiyue 2008-09-03
  • 打赏
  • 举报
回复

select u.id,u.name,check.chkdate
from user u join checkList check on i.id = check.chkid
加载更多回复(1)

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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