鲁妹,铁血北疆曲,引鳄
前端时间,室友拿来一道关于mysql查询的问题:
有3张表:
1,zd_product 产品表 zp_id主键(产品id) inputtime(产品发布时间)
2,zd_order订单表 zp_id外键(产品id)zo_id主键(订单id) zo_voer_time( 订单完成时间)
3,zd_ord_pro产品订单表 zo_id外键(订单id)zp_id(产品id)
问:通过这3张表查找从产品发布到“一个月内““没有”被卖出过的产品?
在这里我也不说我们是如何讨论的了,直接上思路:
1,先查找在这一月内被卖出去的产品id,查找出来的数据:data(所查表zd_order)
2,通过第一步查找出来的数据继续查询zd_order表,不过要加个not in (data)
3,通过前两步,你已经查找出来没被卖出的产品id了,接下来你想查什么就查什么。
语句:
select * from zd_product a1 left join zd_ord_pro a3 on a1.zp_id=a3.zp_id where a1.zp_id in (select zp_id from zd_order where a1.zp_id not in (select zp_id from zd_order a2 where a2.zo_voer_time>a1.inputtime and a2.zo_voer_time<a1.inputtime+30))
该语句未验证,如有错误,请自行修改。
提示:时间相加需转换为时间戳。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
索引原理及B树索引
索引原理及B树索引 http://hongyitong.github.io/2017/01/05/%E7%B4%A2%E5%BC%95%E5%8E%9F...
[阅读全文]
-
-
-
-
MySQL的DML语言操作实例
补充说明,外键:不要使用外键,一切外键概念都在应用层解决。补充说明,数据库的列,也就是字段名,尽量带上飘符号`数据库存在的意义:数据存储和数据管理。数据库:行(...
[阅读全文]
-
-
-
-
-
网友评论