2012-05-27 94 views
1

我有下面的代碼,進行我想要的。然而,我需要第二個條件,其中在表項目中接受的列等於yes。我不知道我會如何將它輸入到我當前的連接中,作爲用戶表的位置。衆多WHERE條件mysql

$query_Name = "SELECT u.Student_Surname, u.Student_Forename, Project_Title, Project_id 
FROM users u 
INNER JOIN projects p2 ON u.id = p2.Project_Lecturer 
INNER JOIN project_course pc ON p2.Project_id = pc.Proj_id 
INNER JOIN courses c ON pc.Cour_id = c.Course_id 
INNER JOIN users u2 ON c.Code = u2.Course 
WHERE u2.Username = ".$_SESSION['MM_Username']." 
ORDER BY Project_id ASC" ; 

回答

1
$query_Name = "SELECT u.Student_Surname, u.Student_Forename, Project_Title, Project_id 
FROM users u 
INNER JOIN projects p2 ON u.id = p2.Project_Lecturer 
INNER JOIN project_course pc ON p2.Project_id = pc.Proj_id 
INNER JOIN courses c ON pc.Cour_id = c.Course_id 
INNER JOIN users u2 ON c.Code = u2.Course 
WHERE u2.Username = ".$_SESSION['MM_Username']." AND p2.Accepted = 'yes' 
ORDER BY Project_id ASC" ; 
1
WHERE u2.Username = ".$_SESSION['MM_Username']." AND p2.Accepted = 'yes' 

或者你可以使用

INNER JOIN projects p2 ON u.id = p2.Project_Lecturer AND p2.Accepted = 'yes' 

第二種選擇可能會更快,依賴於其他的事情,雖然

0

的WHERE實際上是對所有的連接表,因此您明確指出您在WHERE子句中使用哪些表,否則如果查詢不明確,則查詢不起作用。

所以,你使用:

WHERE 
u2.Username = ".$_SESSION['MM_Username']." -- this is for the u2 table 
AND 
p2.Accepted = 'yes' -- this is for p2 table 

您只需使用與在這裏添加更多的邏輯。因此,整個查詢將是:

$query_Name = "SELECT u.Student_Surname, u.Student_Forename, Project_Title, Project_id 
FROM users u 
INNER JOIN projects p2 ON u.id = p2.Project_Lecturer 
INNER JOIN project_course pc ON p2.Project_id = pc.Proj_id 
INNER JOIN courses c ON pc.Cour_id = c.Course_id 
INNER JOIN users u2 ON c.Code = u2.Course 
WHERE u2.Username = ".$_SESSION['MM_Username']." AND p2.Accepted = 'yes' 
ORDER BY Project_id ASC" ; 
0

在您的where子句中添加AND運算符。

$query_Name = "SELECT u.Student_Surname, 
         u.Student_Forename, 
         Project_Title, 
         Project_id 
       FROM users u INNER JOIN projects p2 
         ON u.id = p2.Project_Lecturer 
        INNER JOIN project_course pc 
         ON p2.Project_id = pc.Proj_id 
        INNER JOIN courses c 
         ON pc.Cour_id = c.Course_id 
        INNER JOIN users u2 ON c.Code = u2.Course 
       WHERE u2.Username = ".$_SESSION['MM_Username']." 
        AND p2.Accepted = 'yes' 
       ORDER BY Project_id ASC" ;