查询商品分类id为10或11的商品对应的商品信息(多表查询)
本题目要求编写SQL语句, 以sh_goods_category表为主表,sh_goods表为从表,查询商品分类id为10或11的商品对应的商品id、商品名称、分类id及分类名称。注意:查询结果显示字段依据输出样例设置。
这个要用到外连接。
左外连接:以左表为主表,右表为从表,左表中有而右表没有数据的元组,自动以空补齐。表达:A left join B on 连接条件
右外连接:以右表为主表,左表为从表,右表中有而左表没有数据的元组,自动以空补齐。表达:A right join B on 连接条件
要注意的是select后一般要用主表的数据(即便两表都有该属性列)
本人的想法:
select sh_goods.id gid,sh_goods.name gname,sh_goods_category.id cid,sh_goods_category.name cname
from sh_goods right outer join sh_goods_category on sh_goods_category.id=sh_goods.category_id
where sh_goods_category.id in(10,11);
本SQL语句使用左外连接从sh_goods表(主表)和sh_goods_category表(从表)中获取商品分类id为10或11的商品详细信息,包括商品id(gid)、商品名称(gname)、分类id(cid)和分类名称(cname)。通过right outer join确保即使在sh_goods表中不存在匹配项,也能得到完整的结果集。

被折叠的 条评论
为什么被折叠?



