因此,我建立了預訂系統,並且在計算某些價格時遇到了一些問題。Mysql添加別名,併發症
我原本
SELECT c_id, c_title, c_imgdrop, c_link, c_text4,
(SELECT SUM(bd_price) as price FROM booking_dates WHERE site_id = '15' AND bd_room_type IN ('single','double') AND bd_date IN ('2011-03-05') AND bd_h_id = c_id) AS sum_price
FROM c_content
JOIN (SELECT bd_h_id FROM booking_dates WHERE site_id = '15' AND bd_date IN ('2011-03-05') AND bd_available <= '1' AND bd_room_type = 'single' AND bd_price > '0' GROUP BY bd_h_id HAVING count(*) = '1') q_0 ON c_content.c_id = q_0.bd_h_id
JOIN (SELECT bd_h_id FROM booking_dates WHERE site_id = '15' AND bd_date IN ('2011-03-05') AND bd_available <= '1' AND bd_room_type = 'double' AND bd_price > '0' GROUP BY bd_h_id HAVING count(*) = '1') q_1 ON c_content.c_id = q_1.bd_h_id
WHERE site_id = '15'
這工作得很好,但它沒有很好地工作,如果你試圖計算同類型
的多種房型可供反正我試圖查詢出拆分室類型,並按預訂中該類型的房間數乘以價值。我正在使用這個(Adding MySQL alias fields together),這意味着我不得不添加一個額外級別的子查詢,這會讓事情混淆一點。
我幾乎在那裏,但它不承認我的子查詢中的字段名之一,我期望由於它執行查詢的順序。
我現在擁有的是:
SELECT c_id, c_title, c_imgdrop, c_link, c_text4,
(SELECT sum_price_single, sum_price_double, sum_price_single + sum_price_double AS sum_price FROM
(SELECT
((SELECT SUM(bd_price) as price FROM booking_dates WHERE site_id = '15' AND bd_room_type = 'single' AND bd_date IN ('2011-03-05') AND bd_h_id = c_id) * 1) AS sum_price_single,
((SELECT SUM(bd_price) as price FROM booking_dates WHERE site_id = '15' AND bd_room_type = 'double' AND bd_date IN ('2011-03-05') AND bd_h_id = c_id) * 1) AS sum_price_double
FROM booking_dates
)
x)
FROM c_content
JOIN (SELECT bd_h_id FROM booking_dates WHERE site_id = '15' AND bd_date IN ('2011-03-05') AND bd_available <= '1' AND bd_room_type = 'single' AND bd_price > '0' GROUP BY bd_h_id HAVING count(*) = '1') q_0 ON c_content.c_id = q_0.bd_h_id
JOIN (SELECT bd_h_id FROM booking_dates WHERE site_id = '15' AND bd_date IN ('2011-03-05') AND bd_available <= '1' AND bd_room_type = 'double' AND bd_price > '0' GROUP BY bd_h_id HAVING count(*) = '1') q_1 ON c_content.c_id = q_1.bd_h_id
WHERE site_id = '15'
,並給我下面的錯誤
未知列 '其中 條款'
任何想法 'C_ID'?這應該輸出酒店列表(來自c_content表的值)以及每個酒店的價格。價格包括各種日期的總和,但也必須考慮到多個房間,以及具有不同價格的混合房間類型。
尼斯一個查詢,我已經做了正如你所說,現在解決了這個問題,然而它意味着擺脫房間類型/價格查詢的別名,並將它們加在一起,這意味着如果我需要的話,我也不能分割出房價。客戶字面上只是要求)。我更喜歡你的解決方案:) Thx非常好! – Horse 2011-03-10 12:51:56
你絕對歡迎:) – 2011-03-10 12:55:41