700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > SQL:多表级联查询数量时避免笛卡尔积

SQL:多表级联查询数量时避免笛卡尔积

时间:2021-04-02 23:37:21

相关推荐

SQL:多表级联查询数量时避免笛卡尔积

SQL:多表级联查询数量时避免笛卡尔积

问题场景问题解决延伸

问题场景

用SQL统计每个客户的出库单和入库单数量,并按总量进行排序。当客户无订单时,数量为0。

问题

直接使用count函数时,由于多表关联导致结果出现笛卡尔积,查询出的数量为出库单数量*入库单数量。

解决

在COUNT函数中使用唯一键,并用DISTINCT进行去重。

问题解决。

延伸

若订单表中存在货物重量,要统计每个客户的出库重量和入库重量,该怎么查。此时distinct明显不适用于此场景,需使用子查询的方式实现:

但这种场景只存在两种订单,若有十种订单的时候,需要层层包裹。导致SQL读写起来不够方便。用UNION的方式也可以实现。

如果有更好的实现方式,请留言指点。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。