2012-05-20 73 views
0

我需要过滤基于一个表的数据,但我不知道从MySQL中选择函数的正确用法。下面的代码显示了我想要做的事情,但我认为你可以使用多个SELECT。MYSQL PHP查询从一个表中获取数据到另一个

$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']."))" 

任何人都可以提供任何帮助,我需要写什么呢?

+0

这个查询给你什么? – Norse

+0

尝试使用“联合”语法来执行一次查询... – HamZa

+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;等表使用和张贴在这里),也许你期望的输出,那么我们真的可以帮助。

+0

这似乎工作,但是我意识到我需要在用户表中链接到该项目的用户的名字和姓氏,我会创建一个新的连接查询,或者我可以将它添加到现有的连接查询 –

+0

@NathanLinkAbiola是表中用户的姓和名吗?如果是,只需将它添加到'SELECT'子句中即可,例如:SELECT p.Project_Title, p.Pro ject_Lecturer,u.forename,u.surname FROM projects p ...' – fancyPants

0

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

相关问题