私たちの学校では、生徒が優秀な場合、データベースに保存されている仮想ポンド(またはドル)が与えられます。
これは私の質問です:
SELECT s.chosen_name, s.chosen_surname, s.regId, s.admission_number,
(
SELECT SUM(a.pounds_amount)
FROM tbl_pounds_log a
WHERE a.student_id=l.student_id
) AS total_pounds,
(
SELECT SUM(b.pounds_amount)
FROM tbl_pounds_log b
WHERE b.student_id=l.student_id
AND b.staff_id=:staffId
AND b.action_timestamp>(UNIX_TIMESTAMP()-3600)
) AS available_pounds
FROM TBL_student s
LEFT JOIN tbl_pounds_log l
ON l.student_id=s.admission_number
WHERE ((s.chosen_name LIKE :termOne AND s.chosen_surname LIKE :termTwo)
OR (s.chosen_name LIKE :termThree AND s.chosen_surname LIKE :termFour))
AND (total_pounds>=:lowerPoundLimit
AND total_pounds<=:upperPoundLimit)
GROUP BY s.admission_number
ORDER BY s.chosen_surname ASC, s.chosen_name ASC
LIMIT 0,10
(私はPHP PDOを使用してクエリを実行しているため、:textプレースホルダーを使用しています)。
親クエリのWHERE条件に関しては、少し問題があります。
それが言うところ:
... AND (total_pounds>=:lowerPoundLimit and total_pounds<=:upperPoundLimit)
total_poundsフィールドはサブクエリの列の結果ですが、クエリを実行すると、次の結果が表示され続けます。
Unknown column 'total_pounds' in 'where clause'
誰かがこれに対する解決策を知っていますか?
ありがとう
フィル