2009-07-13 47 views
-1

我有一週的數據,看起來像一個表:MySQL查詢獲得非數據未分配日期

userID  Site    date 
------  ------   ------ 
Smith Ferris Wheel  2009-07-13 
Jones Outerspaceland  2009-07-13 
LChar Ferris Wheel  2009-07-14 
Smith  Underworld  2009-07-16 
Jones  Fish Bowl   2009-07-17 
Munson Go-Go Tech  2009-07-16 

目前,我有一個PHP腳本,首先獲取日期範圍(週一 - 週五),然後爲該日期範圍的每個用戶ID執行查詢。然後,我循環查看結果並檢查日期之間的差距。如果有差距,則輸出日期,並且網站被列爲「留在家裏」。它必須連續幾天(例如,如果用戶只在本週的星期一和星期五進行駐紮),並且在每週結束時必須額外增加一步,以確保如果用戶待在家後星期三(因此星期四和星期五填補空白)。因此,必須進行三項檢查:一項針對不是在星期一開始的用戶,一項針對日期之間的差距,另一項針對在星期五之前結束的用戶,另外還要考慮連續幾天針對任何這些情況。

該腳本基本上創建了一個日期範圍數組來檢查,並且它在幾個月內工作正常。但是

我想知道,是否有一個MySQL函數爲每個用戶返回休息日?這樣我就可以在查詢中填寫「留在家裏」,而不必運行一個時髦的腳本,這個腳本需要永久性地向我的腳本上的其他人員解釋。

謝謝!

回答

0

簡單! 翻轉查詢!

即:

  1. 爲期一週
  2. 造型,其對查找表LEFT_OUTER_JOIN和你的表DAYNAME(場)查詢的日子創建一個查找表。也就是說,它會返回所有行從查找表,只有那些符合你的表,,,

我不知道,如果你想通過人來過濾..標準會是什麼樣子用戶ID =「人」或用戶ID爲空

得到的數據看起來是...

  1. 用於所有的日子
  2. 在ROW行,用戶ID將存在一個非空天及爲null天數跳過
+0

如果我有一張表可以反覆重複使用,那麼是否有一個日期函數會根據實際日期範圍將這些工作日的日期轉換爲實際日期?我的目標之一是儘可能多地使用concat和whatnot來返回SQL查詢返回的實際html,所以在使用你的想法時可以找到缺失的日子,如果它返回那些缺少平日作爲缺失的日期(包裹在HTML標籤等)。 – Anthony 2009-07-14 06:55:00