2017-10-20 124 views
0

我正在製作一個關於使用PHP和MySQL的考勤系統的項目。我在我的SQL語法中遇到了麻煩。我想在我的「學生」表中顯示所有學生的姓名和「考勤」表中的記錄,但是我仍然在屏幕上循環顯示5條額外的記錄。這是我迄今爲止所做的。php/mysql。在2個表中選擇2個共同字段

SELECT students.name as StudentName, attendance.timelogin as TimeLogin, attendance.datelogin as DateLogin FROM students, attendance WHERE students.strand LIKE '%TVL%' AND students.gender ='Male' AND attendance.datelogin LIKE '%{$month}%' AND attendance.timelogin >= '12' ORDER BY students.name ASC; 

screen-output

+0

從我的「學生」表中的學生* –

+0

我沒有看到你加入了2張表。 – isaace

+0

我想顯示P爲目前,L爲晚和A爲缺席在日期編號列從HTML表格。 –

回答

0

你需要添加一個連接條件正常,所以如果你有在考勤表中的學生表的主鍵Id和另一外國鍵studentid使用它。並使用ANSI連接語法如下:

SELECT 
    s.name as StudentName, 
    a.timelogin as TimeLogin, 
    a.datelogin as DateLogin 
    UPPER(LEFT(status, 1)) AS Status 
FROM students AS s 
INNER JOIN attendance AS a ON s.Id = a.StudentId 
WHERE s.strand LIKE '%TVL%' 
    AND s.gender ='Male' 
    AND a.datelogin LIKE '%{$month}%' 
    AND a.timelogin >= '12' 
ORDER BY s.name ASC; 
+0

如何使用此代碼中的變量a和s「FROM students AS s INNER JOIN attendance AS a ??」? –

+1

a和s只是表格名稱的別名 –

+0

@JanMichaelBesinga就像Lio說的那樣,它只是用別名來清除它們並使用表格的全名。 – 2017-10-20 15:06:07