2017-03-16 42 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甚至沒有返回什麼我在我的數據庫應該返回大量的數據 –

相關問題