100分求一SQL,希望大家给点支持!!!在线等~~~~~~~~~~~

daboby 2006-11-16 09:54:49
有主表a,从表b,c
连接条件是a.ID_b=b.id,a.ID_c=c.id
要求查询出b.value,c.value
2个外连接的查询
...全文
513 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubeiru_1982 2006-11-16
  • 打赏
  • 举报
回复
试验一下这个
select d.value,c.value from b,d,a,c
where (d.id in (select b.id_d from a,b where a.ID_b=b.id))
and (c.id in (select a.ID_c from a,c where a.ID_c=c.id))



==================================
= CSDN助手 全面支持CSDN论坛 =
= 监视、收藏、历史、签名走马灯 =
==================================
daboby 2006-11-16
  • 打赏
  • 举报
回复
错误信息:Error of syntax (operator absent) in the expression ' A.id_b=B.id left join 表c C on A.id_c=C.id'
daboby 2006-11-16
  • 打赏
  • 举报
回复
libin_ftsafe(子陌红尘:当libin告别ftsafe) ( )
SELECT
B.value,C.value
FROM
表a A
LEFT JOIN
(SELECT M.id,N.value FROM 表b M LEFT JOIN 表d N ON M.ID_d=N.id) B
ON
A.ID_b=B.id
LEFT JOIN
表c C
ON
A.ID_c=C.id


-------------------
感觉是符合要求的
试了一下,老是报错
单个left join ...on结果都是对的
但是整个语句会报错
好像不能2个left join ...on一起用
中国风 2006-11-16
  • 打赏
  • 举报
回复
a.ID_b=b.id,a.ID_c=c.id
left join 用 以a表的全部数据为基础连接b、c表
这样如a.id是a表是唯一的,但在b表有两条记录,统计结果会多出一条记录。
连接c表同样。只有b_id和c.id是唯一的。统计结果才会正确
lovelizheng 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value from a
inner join b on a.id_b = b.id
inner join c on a.id_c = c.id
JACKYANQUN 2006-11-16
  • 打赏
  • 举报
回复
a是主表,b,c是从表
要是a表中的资料要全部显示的话就
select * from a
left join b on a.ID_b=b.id
left join c on a.ID_c=c.id

如果不要求全部显示a表资料的话就内连接

select b.value,c.value
from a,b,c
where a.ID_b=b.id and a.ID_c=c.id
penglewen 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value
from a,b,c
where a.ID_b=b.id and a.ID_c=c.id

子陌红尘 2006-11-16
  • 打赏
  • 举报
回复
SELECT
B.value,C.value
FROM
表a A
LEFT JOIN
(SELECT M.id,N.value FROM 表b M LEFT JOIN 表d N ON M.ID_d=N.id) B
ON
A.ID_b=B.id
LEFT JOIN
表c C
ON
A.ID_c=C.id
daboby 2006-11-16
  • 打赏
  • 举报
回复
不好意思,题目有点差别,大家在帮忙看看~

有主表a,从表b,c,b有从表d
连接条件是a.ID_b=b.id, b.ID_d=d.id,a.ID_c=c.id
要求查询出d.value,c.value
2个外连接的查询
daboby 2006-11-16
  • 打赏
  • 举报
回复
都正确,但是要注意 笛卡尔积的产生



不知道有没有这个问题
daboby 2006-11-16
  • 打赏
  • 举报
回复
按我的需要,如果a表有100条记录,查询出来的结果应该也是100条记录。
因为a是主表,我只是显示其中的2个字段内容。
splory 2006-11-16
  • 打赏
  • 举报
回复
看来问题解决了
那就顶一下
rfq 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value from a
left join b on a.ID_b=b.id
left join c on a.ID_c=c.id
liubeiru_1982 2006-11-16
  • 打赏
  • 举报
回复
都正确,但是要注意 笛卡尔积的产生

==================================
= CSDN助手 全面支持CSDN论坛 =
= 监视、收藏、历史、签名走马灯 =
==================================
dawugui 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value
from a,b,c
where a.ID_b=b.id and a.ID_c=c.id
allright_flash 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value
from a,b,c
where a.ID_b=b.id and a.ID_c=c.id
allright_flash 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value from a
left join b on a.ID_b=b.id
left join c on a.ID_c=c.id
daboby 2006-11-16
  • 打赏
  • 举报
回复
要求查询出b.value,c.value
gc_ding 2006-11-16
  • 打赏
  • 举报
回复
select b.value,c.value
from a,b,c
where a.ID_b=b.id and a.ID_c=c.id
marco08 2006-11-16
  • 打赏
  • 举报
回复
select * from a
left join b on a.ID_b=b.id
left join c on a.ID_c=c.id
加载更多回复(8)

34,587

社区成员

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

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