2015-10-05 64 views
-2

我有2個表,我必須在PHP MySQL內部連接,但我無法真正理解內部連接SQL語法的語法。這是2代表的結構:如何內部連接日曆表與MySQL中的2個表更多

attendance = EmpID, Date, TimeIn, LunchOut, LunchIn, TimeOut 
actualot = EmpID, Date, TimeIn, TimeOut, Overtime 

我要加入他們的日曆表,以便丟失的日期也將看到, 這是我預期的結果:

result = Date, TimeIn, LunchOut, LunchIn, TimeOut, Overtime 

凡日期將從日曆中獲得,該日曆應該等於2015-08-01至2015-08-30之間的給定範圍內的出席日期,並且加班時間對於出席ID是一樣的,而出席時間對於給定ID用戶標識,如01450015.請注意,我把每個自動增量主鍵和唯一相關的每個人是不是唯一或主鍵的empid。

+1

您將需要一個外連接的日曆表,你會加入到考勤表。您也可以在考勤和ActualOT之間使用外部連接。 – Morpheus

+0

謝謝你的迴應,但我在加入聲明方面很薄弱。你能給出至少一個簡單的語法來完成它嗎?外連接是唯一的選擇嗎? –

+0

@NewbieN JOIN的哪些部分對您不清楚? – RedFilter

回答

1

這是基於具有日曆表的例子:

SELECT C.Date, <additional columns> 
FROM Calendar C LEFT OUTER JOIN 
Attendance D ON C.Date = D.Date LEFT OUTER JOIN 
ActualOT A ON D.EmpID = A.EmpID 
+0

謝謝我會嘗試你的代碼,並檢查是否會有錯誤,提前致謝 –

+0

我沒有得到任何錯誤,但我錯過了一些結果,如日期缺失的日期差距。 –

+0

我只是注意到,使用內連接後,actualot的值沒有顯示。 –