私は2つのテーブルを持っています:
Institute:
-----------
id name city
----- ------- -------
1 Name 1 London
2 Name 2 Leeds
3 Name 3 Edinburgh
Course:
--------
id i_id name stream
----- ----- -------------------- -------
1 1 Computer Engineering Engineering
2 1 Chemical Engineering Engineering
3 2 Electronics Engineering Engineering
4 3 Mechanical Engineering Engineering
結果セットには次の情報が必要です。
- 工学系の科目を履修する機関(名称1、名称2、名称3)。
- 研究所が提供するすべてのコース。
さて、これはこの結果セットを達成するための私のクエリです:
SELECT institute.id, institute.name AS i_name, institute.city, course.name AS c_name
FROM institute, course
WHERE institute.id = course.i_id
AND course.stream = 'Engineering'
ORDER BY institute.id
このクエリは 4 つのレコードを返します。
id i_name city c_name
--- ------- --------- ----------------
1 Name 1 London Computer Engineering
1 Name 1 London Chemical Engineering
2 Name 2 Leeds Electronics Engineering
3 Name 3 Edinburgh Mechanical Engineering
この結果セットを反復処理して、Web ページのデータのリストの下に取得するにはどうすればよいですか。
Found 3 Institutes
----------------------
1) Name 1, London
Courses Offered:-
=> Computer Engineering
=> Chemical Engineering
2) Name 2, Leeds
Courses Offered:-
=> Electronics Engineering
3) Name 3, Edinburgh
Courses Offered:-
=> Mechanical Engineering
[追加]
Web ページにページネーションを設定しました。ここで、ページごとに 2 つのレコードを表示したいとします。上記のクエリを で実行しますLIMIT 0,2
。明らかに、クエリの最初の 2 つのレコードで同じ機関が得られるため、この場合は 3 番目の機関も必要になります。
このような動的クエリを作成できますか?