私は2つのテーブルコースと学生を持っています
たとえば、学生にはフィールドがあります: id
、first_name
データ付き
id : first_name
1 : Andrew
2 : Brian
3 : Charles
4 : David
5 : Eric
6 : Fred
7 : George
たとえば、コースにはidと学生の2つのフィールドがあります
データあり:
id . . . . . . . . 1. . . . . . 2
学生 。. . 1,2,5。. . .3,4,6,7
コース1の学生の名前を見つけたいとしましょう
SELECT students FROM courses c WHERE c.id = 1;
予想通り1,2,5が得られます
また
SELECT @students := students FROM courses c WHERE c.id =1;
予想通り1,2,5が得られます
と
SELECT s.first_name FROM students s WHERE s.id IN (1,2,5);
予想通り、Andrew、Brian Eric が生成されます
SET @students := students FROM courses c WHERE c.id =1;
@生徒を選択;`
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 ルックアップ テーブルを作成できる/作成する必要があることは十分承知していますが、期待した結果が得られない理由を理解したいと思っています。
どこが間違っていますか?