查询商品分类id为10或11的商品对应的商品信息

本题目要求编写SQL语句, 以sh_goods_category表为主表,sh_goods表为从表,查询商品分类id为10或11的商品对应的商品id、商品名称、分类id及分类名称。注意:查询结果显示字段依据输出样例设置。 提示:请使用SELECT语句作答

作为一个初学者, 相信有很多人在第一次做这道题的时候都遇见了自己的问题, 接下来给大家分析一下这道题的坑(有点多啊)

  1. 当两个表单做外连接操作时, 要分清楚以谁为主表, 右边的表是主表则使用right join, 反之使用left join
  2. 当两个表单做外连接操作时, 除了要写上连接条件外, 如若还有其他的条件, 要以主表的的字段为判断属性
  3. 此外, 这道题由题意可知, sh_goodssh_goods_category做完外连接后, 查询商品分类id为10或11的商品

这里, 咱们主要说一下条件放在on和放在where后面的区别;

  • 当条件放在on后面, 后面的条件视为连接条件, 如果不满足, 则显示主表的数据, 从表中的数据以NULL填充
  • 当条件放在where后面, 后面的条件视为查询条件, 是在两表做连接之后, 再进行查询过滤的条件, 如果不满足, 则过滤掉, 所以查询的结果是空

故这道题的最终答案为

select g.id gid, g.name gname, c.id cid, c.name cname from sh_goods g right join sh_goods_category c on g.category_id = c.id where c.id = 10 or c.id = 11;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值