2012-05-27 53 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" ;