首页 > 试题广场 >

46.列出供应商及其可供产品的数量 有Vendors表含有v

[单选题]
46.列出供应商及其可供产品的数量
有Vendors表含有vend_id供应商id.
vend_id
a0002
a0013
a0003
a0010
有Products表含有供应商id和供应产品id
vend_id prod_id
a0001
egg
a0002 prod_id_iphone
a00113
prod_id_tea
a0003
prod_id_vivo phone
a0010
prod_id_huawei phone
【问题】
列出供应商(Vendors 表中的 vend_id)及其可供产品的数量,包括没有产品的供应商。你需要使用 OUTER JOIN 和 COUNT()聚合函数来计算 Products 表中每种产品的数量,最后根据vend_id 升序排序。
注意:vend_id 列会显示在多个表中,因此在每次引用它时都需要完全限定它。
【示例结果】
返回供应商id和对应供应商供应的产品的个数
vend_id prod_id
a0002 1
a0013
0
a0003
1
a0010
1
【示例解析】
供应商a00013供应的商品不在Products表中所以为0,其他供应商供应的产品为1个。
  • select a.vend_id, count(b.prod_id) prod_id
    from Vendors a
    left join Products b using(vend_id)
    group by a.vend_id
    order by a.vend_id asc
  • select a.vend_id, count(b.prod_id) prod_id
    from Vendors a
    inner join Products b using(vend_id)
    group by a.vend_id
    order by a.vend_id asc
  • select a.vend_id, count(b.prod_id) prod_id
    from Vendors a
    right join Products b using(vend_id)
    group by a.vend_id
    order by a.vend_id asc
  • select a.vend_id, count(b.prod_id) prod_id
    from Vendors a
    inner join Products b using(vend_id)
    group by a.vend_id
    order by a.vend_id desc
left join和inner join不是一样的吗,left join可以不用on吗
发表于 2025-02-16 23:26:35 回复(0)