1

以下に2つのテーブルがあります

クラス

classid int autoincrement primary key
classname varchar

学生

studentid int autoincrement primary key
studentname varchar
classid int foreign key references classes

1 つのクエリで、選択したクラスのテーブルの学生から学生 ID を交互にフェッチしたい。選択したクラス ID が 1,2,3 の場合、classid 1、2、3 からの学生 ID が必要です。1 から開始し、2、3 を 1 から開始します。次のような結果を取得するクエリを作成するにはどうすればよいですか

                studentid               classid
                  id1                      1
                  id2                      2
                  id3                      3
                  id4                      1
                  id5                      2
                  id6                      3
                  id7                      1      
4

2 に答える 2

0

Queryt を介して私にはわかりませんが、次のようにすることができます。

クエリを起動すると、代わりにフェッチするすべてのIDが取得されます。たとえば、[5、9、10]です。totalNumberOfIdsYouGot = 3 (配列の合計サイズ)

for(int i=0; i<numberOfTimesItShouldIterate; i++){
    for(int j=0; j<totalNumberOfIdsYouGot.length; j++){
        //Here fire single Query, change only ids each time as totalNumberOfIdsYouGot[j]           
    }
}
于 2013-07-25T05:42:11.250 に答える
0

Mysqlでこれを行うことはできないと思います。Oracle を connect by ステートメントとして使用すると、これを実現できます。
この結果をテーブルに入力するには、プロシージャを使用する必要があると思います。次に選択し
ます 2つのカーソルを使用して、内部でこれを実現できますStored Procedure

于 2013-07-25T05:43:19.667 に答える