我在php中用mysql做了一個小遊戲。現在我遇到了一個我創建的sql查詢的問題。這個想法是查詢檢查用戶是否有足夠的材料。'字段列表'中的未知列'building_requirements_count'
我有一個查詢,如果我像這樣使用它的工作原理:
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;
但是當我添加一列使用這些子查詢的失敗的結果:
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'
有人能向我解釋爲什麼我不能在這裏使用子查詢的結果?我該如何解決這個問題?
我tryed這一點。但是我得到一個錯誤: #1064 - 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以獲得在第15行'WHERE user_materials_count = 2'附近使用的正確語法。 – 2010-07-12 11:18:05
那麼,您的查詢結構有點奇怪。你爲什麼要做一個(實際上是兩個)子查詢來獲得一個你不能選擇任何東西的數字。 – Thariama 2010-07-12 12:32:31
因爲我想在存儲過程中使用它。所以,這個建議非常好,但我更喜歡完整的mysql方法。 – 2010-07-12 15:40:23