mysql如何查询某一时间段内没有卖出的商品

前端时间,室友拿来一道关于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))

该语句未验证,如有错误,请自行修改。

提示:时间相加需转换为时间戳。

(0)

相关推荐

  • MySql 按时间段查询数据方法(实例说明)

    时间格式为2008-06-16 查询出当天数据: SELECT * FROM `table` WHERE date(时间字段) = curdate(); 查询出当月字段: SELECT * FROM `table` WHERE month( 时间字段) = month( now( ) ) ; 时间格式为1219876-- UNIX时间,只要应用"FROM_UNIXTIME( )"函数 例如查询当月: SELECT * FROM `table` WHERE month( from_uni

  • MySql查询时间段的方法

    本文实例讲述了MySql查询时间段的方法.分享给大家供大家参考.具体方法如下: MySql查询时间段的方法未必人人都会,下面为您介绍两种MySql查询时间段的方法,供大家参考. MySql的时间字段有date.time.datetime.timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型:也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time.无论怎么存储,在实际应用中,很可能会出现包含"时间段"类型的查询,比如一个访

  • SQLServer查询某个时间段购买过商品的所有用户

    goods表如下: name time product A 2016-1-2 13:23:00 WFEY B 2016-2-17 11:43;34 ASG A 2017-1-10 15:23:00 SGH C 2015-4-5 13:47:20 HRT C 2016-7-12 19:56:03 XCC A 2017-3-4 14:00:00 ESFW SELECT DISTINCT OO.name FROM (SELECT name,DATE_FORMAT(time , '%h:%m') AS

  • mysql如何查询某一时间段内没有卖出的商品

    前端时间,室友拿来一道关于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张表查找从产品发布到"一个月内""没有"被卖出过的产品? 在这里我也不说我们是如何讨论

  • vue前端和Django后端如何查询一定时间段内的数据

    前言 在开发过程中经常会遇到筛选查询之类的功能,比如查询某一个时间段内的数据而非所有数据. 这样我们就需要向后端发送时间段的参数,然后在后端处理查询. 这里以Django后端和vue前端的简单例子来记录大致实现. 后端数据库 这里是一些简单的数据重要的是date,我们需要根据日期来筛选返回到前端. models.py class CountDownSign(models.Model): name = models.CharField(max_length=1000) date = models.

  • MySql查询某个时间段内的数据实例(前一周、前三个月、前一年等)

    目录 1.使用函数DATE_SUB (1).前一周的数据 (2).前三个月的数据 (3).前一年的数据 2.使用函数DATE_ADD (1).前一周的数据 (2).前三个月的数据 (3).前一年的数据 总结 1.使用函数DATE_SUB DATE_SUB函数在当前时间减去一定的时间 DATE_SUB(date,INTERVAL expr unit) date:合法日期,可以是当前时间now() expr:希望减去的时间,整数 unit:减去时间的单位,如day,week,month,year 实

  • 问个高难度的复杂查询(在一个时间段内的间隔查询)

    我想在一个时间段内然后按照间隔时间来查询数据 select * from 监控温度表 where 监控温度表.时间 between '" + Str(dtStart.Value) + "'AND '" + Str(dtEnd.Value) + "'order by id 这个是在一个时间段内查询,现在要加个时间间隔来查询,不知所云,望高手解答 其中dtStart.Value和dtEnd.Value是DTPicker1控件 举例:比如说我查询时间段在 2007-1-5

  • mysql连接查询(左连接,右连接,内连接)

    一.mysql常用连接 INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录. RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录. mysql> select * from name_address; +----------+------+----+ | address | name | id | +----------+------

  • mysql 获取规定时间段内的统计数据

    mysql 获取规定时间段内的统计数据 按年统计 SELECT count(*), DATE_FORMAT(order_info.create_time, '%Y-%m-%d') AS count_by_date FROM order_info WHERE DATE_FORMAT(order_info.create_time, '%Y') = '2017' GROUP BY count_by_date ORDER BY NULL 按月统计 SELECT count(*), DATE_FORMAT

  • MySql中子查询内查询示例详解

    西北望乡何处是,东南见月几回圆. 月亮又慢悠悠的挂上了天空,趁着睡前梦呓,我就带领各位可爱的读者们探索MySql最后的子查询部分. 说明:有些查询结果出来结果截图与题目要求不一样会出现多余的字段是为了方便展示结果的可读性.实际操作的读者可以删除SELECT后面多余的字段得到正确的结果. #WHERE或HAVING后面 #1.标量子查询(单行子查询) #2.列子查询(多行子查询) #3.行子查询(多列多行) #特点: # ①子查询放在小括号内 # ②子查询一般放在条件的右侧 # ③标量子查询:一般

  • MySQL模糊查询用法大全(正则、通配符、内置函数)

    SELECT * from table where username like '%陈哈哈%' and hobby like '%牛逼' 这是一条我们在MySQL中常用到的模糊查询方法,通过通配符%来进行匹配,其实,这只是冰山一角,在MySQL中,支持模糊匹配的方法有很多,且各有各的优点.好了,今天让我带大家一起掀起MySQL的小裙子,看一看模糊查询下面还藏着多少鲜为人知的好东西. 一.MySQL通配符模糊查询(%,_) 1-1. 通配符的分类 "%" 百分号通配符: 表示任何字符出现

  • Mysql 如何查询时间段交集

    Mysql 查询时间段交集 使用场景 数据库表有两个字段starttime,endtime.现在给出(a,b)的时间段,查出和(starttime,endtime)时间段有交集的数据. sql select * from TABLENAME where (starttime > a AND starttime < b) OR (starttime < a AND endtime > b) OR (endtime > a AND endtime < b) OR (star

  • MyBatis中如何查询某个时间段内的数据

    目录 如何查询某个时间段内的数据 Mybatis查询日期范围 将日期时间,转换为字符串 将字符串,转换为日期时间 如何查询某个时间段内的数据 1.当使用SQL语句查询某个时间段的数据时 我们很自然的会想到使用between…and..来操作,但是如果使用between...and... 这个方法来查询某个时间段的数据时是需要传入两个参数的,一个是起始时间,另一个是结束时间,且两个参数必须要同时存在才能使用between...and...,而我们希望的是只传入一个参数(起始时间或者结束时间)就能进

随机推荐