对不起我的头衔,我不知道怎么描述。
我有一张表t1
如下:
id t_id time
1 1 201501
2 1 201502
我希望在201501, 201502, 201503, 201504, 201505, 201506
等指定时段内获取记录集,而不是t1
中的时间。用户输入传递的指定时间段。
我想要这样的结果:
id t_id time
1 1 201503
2 1 201504
3 1 201505
4 1 201506
是否可以在一个sql中获得结果?
我用php收集用户输入。
答案 0 :(得分:2)
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;
答案 1 :(得分:1)
你可以尝试这样的事情(对不起,我这里没有数据库,所以我无法测试它):诀窍是首先用UNION SELECT选择你的值。
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)