2012-09-26 90 views
0

可能重複:
Can MySQL Nested Select return list of results與MySQL值的迴歸陣列選擇

我有含有users(ID,姓名)一個表,另一個含有courseAttrs用戶已經施加到(用戶ID,courseID)。我想要選擇所有用戶,並讓此選擇返回用戶已應用的名稱和用逗號分隔的courseID列表。什麼是可能的解決方案?

+2

[你嘗試過什麼?](http://www.whathaveyoutried.com) – Kermit

+0

我想選擇所有的課程哪裏會返回所有的用戶和他們的課程。例如:如果我有2個用戶,第一個用戶有2個'courseAttr'條目,第二個用戶有4個,那麼查詢將返回6行,每行都有不同的courseID,但不能用逗號分隔。我可以用PHP處理這個問題,但我認爲通過MYSQL有一個更簡單的解決方案。我有'JOIN ON'的感覺可以幫助,但我不知道'JOIN'命令是如何工作的。 – JNK

+0

我發現了一個類似的問題,我可以得到我想要的結果。 http://stackoverflow.com/questions/2524848/can-mysql-nested-select-return-list-of-results – JNK

回答

1

你應該檢查mysql的手冊,所以,據你介紹你應該創建兩個表的查詢...你可以使用mysql的程序來獲得結果..你可以隨時使用foreach閱讀所有的值,如果你想要一個特定類型的數組,你可以創建它同時循環運行通過你的對象/數組返回的mysql

我想如果你創建一個數組(像我想你想創建)與表單(name,courseid,courseid,courseid)u可能會弄亂所有數據,並可能爲每個用戶創建一個數組。我認爲最好的辦法是接收從查詢中獲得的對象或數組。

的查詢,假設你有一個關聯字段,你可以做這樣的事情

SELECT * FROM用戶,courseAttrs其中user.courseattr = courseattr.id_couse_attr

如果使用mysql_fetch_object

while ($row = mysql_fetch_object($result)) { 
    echo $row->user_id; 
    echo $row->fullname; 

} 

mysql_fetch_assoc()返回關聯數組:

while ($row = mysql_fetch_assoc($result)) { 
    echo $row["userid"]; 
    echo $row["fullname"]; 
} 

mysql_fetch_array()返回數組

while ($row = mysql_fetch_array($result)) { 
    echo $row[0]; 
    echo $row[1] ; 
} 
+0

我想從MYSQL得到的'$ row'結果是'array(「name」=「 >「Joe」,「courseIDs」=>「1,2,3,6」);''courseIDs'字符串可以通過'explode(「1,2,3,6」)'然後運行進一步處理。如果我無法找到任何東西,我只會用PHP來實現它。 – JNK

+0

但如果你有不止一行的結果?你會創建另一個數組嗎? – jpganz18