现在写的sql只能展示有的数据 如果没有的话显示是这样的
需要将下面这些空的月里面也查询出商品的名字 请问大家怎么改
现在写的sql只能展示有的数据 如果没有的话显示是这样的
方案一,你这个数据库里应该还有个完整的商品信息表吧,你把那个商品信息表和你做的这个月份数据进行笛卡尔积join,即不使用任何条件,即可得到任意商品和任意月份的组合数据,这个时候再用这个数据去left join你的订单数据即可。但是这个缺点是,你商品表里可能有很多垃圾数据,即从未进行过任何交易的商品,这样最后你的数据里就会存在很多无用数据。所以,你还可以尝试用这个订单数据distinct商品出来替代前面说的这个完整商品信息表,但缺点就是查询效率变低了
方案二,如果是8.0以上,可以使用with递归,判断本行没有数据就用上一行的数据(商品名称),但你没写数据库版本,也没给建表和模拟数据的sql,我就不细说了,可以参考下面这个问答,只是"WITH cte_name AS" 要改成"WITH RECURSIVE cte_name AS",和其他数据库相比多了个"RECURSIVE"