2012-05-20 46 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']可以是一個字符串嗎?

相關問題