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


UPDATE one table with SELECT from another table

我有两个表HOUSESCOUNTRIES

住宅
country_code-例如西班牙的"ES"

国家
country_code-例如西班牙的"ES"
房屋总数-示例20-在houses表中找到的西班牙"ES"的房屋总数

我需要在houses表中统计每个houses.country_code中的房屋数量,并用COUNTRIES.house_total中的总数更新国家表格

非常感谢

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

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

未经测试,但应该有效。

使用带更新的联接:

试试下面的:

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