私はmysqlを使ってphpで小さなゲームを作っています。今、私が作成したSQLクエリの1つに問題があります。アイデアは、ユーザーが十分な資料を持っているかどうかをクエリがチェックすることです。
このように使用すると機能するというクエリがあります。
SELECT
(
SELECT COUNT(*)
FROM building_requirements
WHERE building_id = '1'
) as building_requirements_count,
(
SELECT COUNT(*)
FROM user_materials, building_requirements
WHERE user_materials.material_id = building_requirements.material_id
AND user_id = '27'
AND building_id = '1'
AND (user_material_amount >= building_material_amount) = 1
) as user_materials_count;
しかし、これらのサブクエリの結果を使用する1つの列を追加すると、失敗します。
SELECT
(
SELECT COUNT(*)
FROM building_requirements
WHERE building_id = '1'
) as building_requirements_count,
(
SELECT COUNT(*)
FROM user_materials, building_requirements
WHERE user_materials.material_id = building_requirements.material_id
AND user_id = '27'
AND building_id = '1'
AND (user_material_amount >= building_material_amount) = 1
) as user_materials_count,
building_requirements_count = user_materials_count as enough_materials;
エラーが発生します:
#1054 - Unknown column 'building_requirements_count' in 'field list'
ここでサブクエリの結果を使用できない理由を誰かに説明してもらえますか?そして、どうすればこれを修正できますか?