我的数据库中有两个表 -
第一桌命名区域:
id name
1 a
2 b
3 c
第二表命名数据:
id name area_id end_date
1 a1 1,2 2014-07-14 09:50:00
我想从第一个表中选择行,只有当我的第二个表的 area_id 设置中 id 不存在且 end_date 为大于或等于当前日期。
我的查询(不工作) -
select a.* from area as a where a.id NOT IN (
SELECT find_in_Set(area_id) FROM data
WHERE date(end_date)>=CURRENT_DATE()
)
答案 0 :(得分:0)
如果我正确解释您的问题,则此查询的结果应为
id | name
---------
3 | c
然后你可以通过一点修改得到你的结果。你忘了应该在套装中找到的针:
SELECT a.*
FROM area as a
WHERE a.id NOT IN (
SELECT FIND_IN_SET(a.id, area_id) FROM data -- you forgot the needle
WHERE date(end_date) >= CURRENT_DATE()
)
但是如果可以的话,我建议你遵循juergen d的好建议并改变表结构。