0

我试图从两张桌子下面显示价格低廉的不同酒店房间(低价房间的酒店,无需显示该酒店的其他房间)。但我收到错误“on 子句中的未知列 column_name”。请检查我的查询

    SELECT  r.*,h.*
    FROM hotels_temp h,rooms_temp r
    INNER JOIN
    (
      SELECT 
        hotel_code,MIN(amount) mincost
      FROM 
        rooms_temp 
      GROUP BY hotel_code
    ) m ON r.amount = m.mincost and h.hotel_code=r.hotel_code 
    ORDER BY r.amount
    LIMIT 30

表名: hotels_temp

在此处输入图像描述

表名:rooms_temp

在此处输入图像描述

4

2 回答 2

1

我可以通过以下查询自己解决这个问题。

    SELECT * FROM hotels_temp
    INNER JOIN
    (
        SELECT  r.amount,r.hotel_code FROM rooms_temp r
        INNER JOIN
        (
            SELECT hotel_code,amount, MIN(amount) mincost FROM rooms_temp  GROUP BY hotel_code
        ) m ON 
        r.amount = m.mincost GROUP BY r.hotel_code
    ) ht ON 
    ht.hotel_code=hotels_temp.hotel_code LIMIT 0,30
于 2013-02-21T14:48:08.447 回答
0

根据亩假设,您需要成本较低的房间,每家酒店最多一间客房。然后你实现如下,

SELECT DISTINCT r.id, r.*,h.*
FROM rooms_temp r LEFT JOIN hotels_temp h ON h.hotel_code = r.hotel_code
ORDER BY r.amount DESC LIMIT 0,30

在这里我假设 r.id 是房间的唯一 ID。

于 2013-02-21T14:02:51.173 回答