解释这段mysql代码 with tmp as( select customerid,sum(amount) as amt from orderitems as a join orders as b using(orderid) group by customerid order by amt desc limit 30),#先检索销售额最大的前30个客户 tmp1 as( select distinct customerid from orders as a join customers as b using(customerid) join orderitems as c using(orderid) join products as d using(productid) where year(orderdate)=2019 and month(orderdate)=5 and productid<>(select productid from products where productname='百威啤酒')and customerid in(select customerid from tmp))#检索tmp中哪些客户2019年5月份没有买过百威啤酒 select distinct customerid,companyname from tmp1 join customers using(customerid)
时间: 2023-06-18 16:06:41 浏览: 177
MySQL优化之使用连接(join)代替子查询
这段 MySQL 代码首先使用了一个临时表 tmp,其中检索出了销售额最大的前 30 个客户,然后使用另一个临时表 tmp1,检索出了这些客户在 2019 年 5 月份没有购买过百威啤酒的客户。最后,通过与 customers 表进行 join 操作,检索出了这些客户的 customerid 和 companyname。
阅读全文