求SQL语句高手??100分送上.......

coollele 2001-06-21 01:09:00
我有如下两表:
表一. main

id name ....
1 中国
2 美国
3 日本
. ...
. ...

表二. sub
subid mainid name
1 1 电视机
2 1 电脑
3 1 电风扇
4 2 手表
5 2 手电筒
6 3 vcd
7 3 dvd
8 3 cd
. .. ...
. .. ...
现在想求表三.

subid id main.name sub.name
1 1 中国 电视机
4 2 美国 手表
6 3 日本 vcd
. .. ... ....
. .. ... ....
这样的话, SQL语句如何写呢?



...全文
140 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
artgolf 2001-06-21
  • 打赏
  • 举报
回复
不值100分,20分就够了
BlueSQu 2001-06-21
  • 打赏
  • 举报
回复
SORRY:
TRY THIS

select distinct b.subid,a.id,a.name main.name,b.name sub.name
from main a,sub b
where a.id=b.manid and rownum<4 group by b.mainid
TRY
:)
BlueSQu 2001-06-21
  • 打赏
  • 举报
回复
select distinct b.subid,a.id,a.name main.name,b.name sub.name
from main a,sub b
where a.id=b.manid and a.rowno<4 group by b.mainid
TRY
:)
guo 2001-06-21
  • 打赏
  • 举报
回复
有同感,越来越得不到我想要的东西了,我提的问题有80%没解决.
各位兄弟,以后经常会在http://www.linuxforum.net/forum/postlist.php?Cat=&Board=oracle见到我.
pxq 2001-06-21
  • 打赏
  • 举报
回复
select main.ID ,sub.ID ,main.name,sub.name
from main,sub,
(select main.id as mainID, min(sub.id) as SubID
from main inner join on main.id = sub.mainID
group by main.ID ) t
where main.ID = t.mainID and Sub.ID = t.SubID

wwl007 2001-06-21
  • 打赏
  • 举报
回复
我真的不明白我回答的问题为什么没有了!真的不明白这个网站如何搞的
jcq 2001-06-21
  • 打赏
  • 举报
回复
你这个问题真的不要100分的,应该有人问过类似的问题了。
wwl007 2001-06-21
  • 打赏
  • 举报
回复
select a.sub_iid,a.iid,mainid.main_name,mainid.sub_name,from main,mainid,(select mainid as iid,min(subid) as sub_iid from sub group by mainid) a
where main.id=a.iid and mainid.id=a.sub_iid
这个方法没有用自查询!数据比较快!你说对马guo(正在学Oracle和Solaris) 
生活越来越无聊!
guostong 2001-06-21
  • 打赏
  • 举报
回复
select a.subid,b.id,b.name,c.name subname from
(select min(subid),mainid from sub group by mainid) a,
main b,sub c
where b.id = a.mainid
and c.subid = a.subid
guo 2001-06-21
  • 打赏
  • 举报
回复
上句中select min(subid) from sub group by id应为
select min(subid) from sub group by mainid
coollele 2001-06-21
  • 打赏
  • 举报
回复
我想,我没有说明白吧!

我求的表三里结果是:表一里的每一条记录对应在表二里的第一条记录。。。。。。
guo 2001-06-21
  • 打赏
  • 举报
回复
刚才是用自己写的例子写的,下面适合你.
select sub.subid,sub.mainid id,main.name,sub.name from sub,main
where sub.subid in (select min(subid) from sub group by id ) and sub.mainid=main.id
guo 2001-06-21
  • 打赏
  • 举报
回复
呵呵,看懂了,试试
select sub.subid,sub.id,main.name,sub.name from sub,main where sub.mainid=main.id and sub.subid,sub.id in (select min(id),subid from test group by subid)
freshman113 2001-06-21
  • 打赏
  • 举报
回复
是啊,如果没有要求表三中main.name不重复,上面语句应该可以的。
不过,觉得也太简单了点。不知道是否你没说清楚你的要求。
guo 2001-06-21
  • 打赏
  • 举报
回复
表三中为什么没有出现表二中的2,3,5,是否有其它筛选规则?
如果没有就简单了select sub.subid,sub.id,main.name,sub.name from sub,main where sub.mainid=main.id

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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