我有兩個表課程&學生MySQL的地方,在子查詢只返回一行
說,學生有字段:id
,first_name
數據
id : first_name
1 : Andrew
2 : Brian
3 : Charles
4 : David
5 : Eric
6 : Fred
7 : George
說,課程有兩個字段:ID &學生
隨着數據:
ID。 。 。 。 。 。 。 。 1。 。 。 。 。 。 2
學生。 。 。 1,2,5。 。 。 .3,4,6,7
說我想找到同學的名字在課程1
SELECT students FROM courses c WHERE c.id = 1;
產量1,2,5預期
而且
按預期得到1,2,5
而且
SELECT s.first_name FROM students s WHERE s.id IN (1,2,5);
得到安德魯·布賴恩·埃裏克預期
SET @students := students FROM courses c WHERE c.id =1;
SELECT @students;`
產量1,2,5
我希望
SET @students := students FROM courses c WHERE c.id =1;
SELECT s.first_name FROM students s WHERE s.id IN (@students);
產生安德魯,布萊恩·埃裏克
但它只返回的第一個名字:安德魯
我深知,我可能/應該有一個單獨course_student查表,但我急於瞭解爲什麼我沒有得到我期待的結果
我在哪裏出錯了?
它的工作原理! SELECT @students:= students FROM courses c WHERE c.id = 1; SELECT s.first_name FROM students s WHERE FIND_IN_SET('id',@students)\ n謝謝你的答案。我認爲這肯定是一個類型問題,我試圖把學生作爲Char,但似乎沒有工作 – apwatts 2012-08-07 13:57:02
我現在成功地使用..... SELECT s.first_name FROM students s WHERE FIND_IN_SET('id',(SELECT students FROM courses c WHERE c.id = 1)) – apwatts 2012-08-07 14:01:49