使用另一个表中的SELECT更新一个表

时间:2012-03-03 22:38:17

标签: php mysql

我有两张桌子 HOUSES 国家

房屋
country_code - 西班牙的示例'ES'

国家
country_code - 西班牙的例子'ES' houses_total - 示例20 - 在HOUSES表中找到的'ES'西班牙房屋总数

我需要计算 HOUSES 表格中每个 HOUSES.country_code 中的房屋数量,并使用该总数更新 COUNTRIES 表格的 COUNTRIES.houses_total

非常感谢

2 个答案:

答案 0 :(得分:2)

假设特定国家/地区的行已存在于COUNTRIES

UPDATE COUNTRIES SET houses_total =
    (SELECT COUNT(*) FROM HOUSES WHERE HOUSES.country_code = 'ES')
WHERE country_code = 'ES' LIMIT 1;

未经测试,但它应该有效。

答案 1 :(得分:0)

使用join with update:

尝试以下:

Update countries as c 
left join  (SELECT COUNT(*) as totalcount,country_code  
            FROM HOUSES 
            GROUP BY country_code) as tc 
on c.country_code =tc.country_code  
set c.houses_total =tc.totalcount