結果の行を返す SELECT でサブクエリを作成できますか?
たとえば、次のようなクエリを使用する必要があります。
SELECT columnA as aliasA, columnB as aliasB,
(SELECT columnC FROM table2
WHERE clause2) as aliasC,
(SELECT columnD FROM table2
WHERE clause2) as aliasD
FROM table1
WHERE clause1
実行に時間がかかりすぎるため、改善したいと思います。次のようなクエリを作成する方法はありますか?
SELECT columnA as aliasA, columnB as aliasB,
(SELECT columnC, columnD FROM table2
WHERE clause2) as (aliasC, aliasD)
FROM table1
WHERE clause1
ありがとう
注 : より具体的に言うと、例を挙げます。第 1 四半期の各月の学生の最高の結果と最悪の結果を取得する必要があります。テーブルに参加すると、同じ学生に対して複数の行が表示されます (各月に 1 行)。ただし、次のものが必要です。
SELECT firstname, lastname,
(SELECT MAX(value) FROM results WHERE results.student_id = student.id AND results.date
BETWEEN 'JAN-01' AND 'JAN-31') AS best_result_of_jan,
(SELECT MIN(value) FROM results WHERE results.student_id = student.id AND results.date
BETWEEN 'JAN-01' AND 'JAN-31') AS worst_result_of_jan,
...,
(SELECT MIN(value) FROM results WHERE results.student_id = student.id
AND results.date BETWEEN 'MAR-01' AND 'MAR-31') AS worst_result_of_mar
FROM student
WHERE student.has_maths = 1