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)