2017-03-16 55 views
0

我有2个表MYSQL选择从一个表,在第二个表不存在日期

presence table: 

matricule date_effet 
248  2017-01-30 
248  2017-01-31 
248  2017-02-01 
248  2017-02-02 

活动表:

Matricule date 
248  2017-01-31 
248  2017-02-01 
248  2017-02-02 

我想是提取的存在的日期第一个,在这种情况下第二个不存在2017-01-30知道用户将选择范围日期为例在这种情况下可能在2017-01-28和2017-02-02之间的日期

+0

有很多方法可以实现,左连接使用null检查(负外连接),使用'not exists'。请尝试一下,让我们知道如果你卡住了。您可以通过Google搜索了解上述方法的工作原理。 –

+0

需要帮助我仍然在努力尝试我的最佳大声笑,我会让你知道,我做了三重不存在,但没有工作 –

+0

这里有两个查询来做这项工作'从存在中选择p.date_effet p 哪里没有存在( select 1 from activities a where a.date = p.date_effet )' 其他方式是'select p.date_effet from presence p left join activity a on a.date = p.date_effet where a.date为空;' –

回答

-1

请试用

SELECT * FROM presence 
MINUS 
SELECT * FROM Activities 

SQL EXCEPT/MINUS

+0

对不起对我的情况不起作用 –

+0

虽然这段代码片段是受欢迎的,并可能提供一些帮助,它会[[如果它包括一个解释大大改善]]( //meta.stackexchange.com/q/114762)* how *和* why *解决了这个问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –

0

试试这个:

SELECT date_effet FROM presence WHERE date_effet NOT IN(SELECT date FROM activities) 

内的SELECT语句将选择所有从第二个表的日期,然后将第一选择将选择所有从第一个表的日期这不存在于第二个表中。

希望它有帮助!

+0

thnks为快速响应,但MySQL甚至没有返回什么我在我的数据库应该返回大量的数据 –

相关问题