MYSQL PHP查询将数据从一个表获取到另一个表

时间:2012-05-20 18:24:34

标签: php mysql

我需要根据一个表过滤数据,但我不知道php mysql中select函数的正确用法。下面的代码显示了我想要做的事情,但我认为你可以使用多个SELECT。

$query_Student = "SELECT Project_Title, Project_Lecturer FROM projects WHERE Project_id = 
 (SELECT Proj_id FROM project_course WHERE Cour_id = (SELECT Course_id from courses WHERE     
Code = (SELECT Course FROM users WHERE Username = ".$_SESSION['MM_Username']."))"

任何人都可以为我需要写的东西提供任何帮助吗?

2 个答案:

答案 0 :(得分:2)

你想要做的事情对我来说并不是很清楚,但为了使你的查询工作,你需要在$_SESSION['MM_Username']附近加上单引号,就像gogowitsch已经说过的那样。

还缺少另一个关闭的paranthese。所以你的查询应该是这样的:

$query_Student = "SELECT Project_Title, Project_Lecturer FROM projects WHERE Project_id = 
 (SELECT Proj_id FROM project_course WHERE Cour_id = (SELECT Course_id from courses WHERE     
Code = (SELECT Course FROM users WHERE Username = '".$_SESSION['MM_Username']."')))"

<强>可是...

这不是一个写得很好的查询。

我现在只是猜测,但也许这就是你要找的东西:

SELECT 
p.Project_Title, 
p.Project_Lecturer 
FROM projects p
INNER JOIN project_course pc ON p.Project_id = pc.Proj_id
INNER JOIN courses c ON pc.Cour_id = c.Course_id
INNER JOIN users u ON c.Code = u.Course
WHERE u.Username = 'yourUserName';

如果没有,请向我们展示您正在使用的表格(对于您正在使用的每个表格执行SHOW CREATE TABLE projects;等等,并在此处发布)以及您期望的输出,然后我们可以提供帮助。

答案 1 :(得分:0)

您可能需要在用户名周围添加引号。 $_SESSION['MM_Username']可以成为字符串吗?