2015-02-24 116 views
0

我想知道的日期是不存在於我的數據庫是什麼,我有這個疑問MySQL中,發現天,這是不存在的查詢

SELECT Hour.date 
    , User.l_name 
    , User.f_name 
    FROM kadry.hours AS Hour 
    LEFT 
    JOIN kadry.subordinates Subordinate 
    ON Subordinate.supervisor_id LIKE "02705" 
    LEFT 
    JOIN kadry.users User 
    ON User.assigned = Subordinate.department_id 
WHERE Hour.subordinate_id = User.id 
    AND Hour.date IN("2015-02-09","2015-02-10","2015-02-11" 
        ,"2015-02-12","2015-02-13","2015-02-16" 
        ,"2015-02-17","2015-02-18","2015-02-19" 
        ,"2015-02-20","2015-02-23") 
ORDER 
    BY User.id ASC 
    , Hour.date ASC 

,並在PHP我可以處理它,我可以檢查是否有日期不見了,但我認爲有一種方法可以在MySQL中完成,但我不知道如何。任何幫助都會很棒。

+0

誰頂起這個東西? – Strawberry 2015-02-24 11:22:26

回答

0

MySQL是一個數據庫,因此它只能告訴你它有什麼。有一些高級的選擇命令,但通常你應該想要在PHP中處理數據的任何邏輯。

請記住,只選日期並將它們與PHP中的某些內容進行比較,如果它們甚至可能,通常會比複雜的MySQL方面的計算快得多。

我會建議你:

  1. 準備一切可能的日期在PHP列表(生成或 預definied)。將它們存儲在數組中。
  2. 從數據庫中恢復所有日期。
  3. 刪除您在MySQL中找到的早期準備數組中的所有日期。方法取決於來自MySQL的數據,但最快的應該是通過MySQL記錄運行 。
+0

好的,謝謝,我已經完成了PHP處理,但認爲它可以在mysql中完成 – Viszman 2015-02-24 10:58:53

+0

@Viszman我認爲這不是,但我不確定。即使是這樣,我個人強烈建議將邏輯保存在PHP中,並儘可能快地限制SQL的選擇。 – Forien 2015-02-24 11:02:16