因此,我建立了预订系统,并且在计算某些价格时遇到了一些问题。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