VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 849|回复: 6

求一个不是很难的SQL 语句

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-11 13:30:01 | 显示全部楼层 |阅读模式
2个表,1个是部件表bj(其中有一个字段表示部件代码,一个字段为flag标记),1个是价格表jg(同样有部件代码字段,还有个价格字段)

现在求所有flag为真的部件的价格。

select bj.id,jg.jg from bj,jg where bj.flag=1

问题是,价格表中,有些部件的价格是不存在的,按上面的查询得到的只有在2个表中都存在的部件,而无法得到我想要的所有flag=1的部件清单

要求是能得到所有flag=1的部件清单,如果有部件在价格表中不存在,自动取0值
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-4 08:45:01 | 显示全部楼层
select  bj.id,jg.jg  from  bj,jg  where  bj.flag=1 and bj.id=jg.id
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-6 15:00:01 | 显示全部楼层
select bj.id
       ISNULL(jg.jg,0)
left join jg on bj.id=jg.id
where bj.flag=1
回复

使用道具 举报

1

主题

21

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-6-18 08:00:01 | 显示全部楼层

select bj.id,jg.jg from bj left outer join jg on bj.id=jg.id where bj.flag=1

on后面bj.id=jg.部件代码字段 (这里的id要是部件id列)
回复

使用道具 举报

0

主题

14

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-4 17:30:02 | 显示全部楼层
1楼正解
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-24 08:00:01 | 显示全部楼层
自己搞定了,搞的很复杂用了union,把价格表中已有的部件价格+价格表中不存在的部件价格0 就成了
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-28 17:00:01 | 显示全部楼层
SELECT  bj.id,IsNull(jg.jg,0)  
FROM    bj,jg  
WHERE   bj.id=jg.id(+) and bj.flag=1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表