MYSQL Update单一记录MIN&amp ;;来自第二个表MYSQL中的多个记录的MAX值

时间:2012-01-26 15:53:27

标签: php mysql select

我有2个桌子和房子。可用性 - 我想在AVAILABILITY中找到每个HOUSEID的RENT字段的最小值和最大值,每个JOUSEID包含许多记录,然后更新HOUSES表字段MIN_RENT和MAX_RENT,HOUSES表每个HOUSE ID只包含一个条目

HOUSES

houseid min_rent max_rent
    121    40.00    90.00
    122    50.00    80.00
    123    40.00   100.00

AVAILABILITY

house_id date     rent
     121 01/01/12   40
     121 01/02/12   50
     121 01/03/12   60
     121 01/04/12   90
     122 01/01/12   40
     122 01/02/12   50
     122 01/03/12   60
     122 01/04/12   80
     123 01/01/12   40
     123 01/02/12   50
     123 01/03/12   60
     123 01/04/12   90

此致          马丁

1 个答案:

答案 0 :(得分:2)

更快的解决方案

UPDATE
     HOUSES H
    ,(
        SELECT
             house_id
            ,MIN( rent ) AS min 
            ,MAX( rent ) AS max
        FROM
            AVAILABILITY
        GROUP BY
            house_id
    ) AS A
SET
     min_rent = A.min
    ,max_rent = A.max
WHERE
    H.house_id = A.house_id