Mysql 是否有可能通过用户输入从现有数据中获得反向结果?

Mysql 是否有可能通过用户输入从现有数据中获得反向结果?,mysql,Mysql,对不起,我的标题,我不知道如何描述它 我有一个表t1,如下所示: id t_id time 1 1 201501 2 1 201502 我希望在指定的时间段内获取记录集,如201501、201502、201503、201504、201505、201506,时间不在t1。指定用户输入经过的时间段 SELECT a.* FROM ( SELECT 201501 user_input UNION SELE

对不起,我的标题,我不知道如何描述它

我有一个表
t1
,如下所示:

id  t_id   time
 1   1     201501
 2   1     201502
我希望在指定的时间段内获取记录集,如
201501、201502、201503、201504、201505、201506
,时间不在
t1
。指定用户输入经过的时间段

SELECT a.*
  FROM 
     ( 
       SELECT 201501 user_input
        UNION
       SELECT 201502
        UNION
       SELECT 201503
        UNION
       SELECT 201504
        UNION
       SELECT 201505
        UNION
       SELECT 201506
     ) a
  LEFT 
  JOIN t1 b
    ON b.time = a.user_input
 WHERE b.id IS NULL;
我想要这样的结果:

id  t_id   time
 1   1     201503
 2   1     201504
 3   1     201505
 4   1     201506
是否可以在一个sql中获得结果


我使用php收集用户输入。

您可以尝试类似的方法(很抱歉,我这里没有数据库,所以无法测试):诀窍是首先使用UNION select选择值

SELECT a.*
  FROM 
     ( 
       SELECT 201501 user_input
        UNION
       SELECT 201502
        UNION
       SELECT 201503
        UNION
       SELECT 201504
        UNION
       SELECT 201505
        UNION
       SELECT 201506
     ) a
  LEFT 
  JOIN t1 b
    ON b.time = a.user_input
 WHERE b.id IS NULL;
SELECT v.x from (SELECT 201501 v
UNION SELECT 201502 v
UNION SELECT 201503 v
UNION SELECT 201504 v
UNION SELECT 201505 v
UNION SELECT 201506 v) x
 WHERE v.x not in (SELECT time FROM t1)