如何在MySQL中将一个表替换和更新数据到另一个表

时间:2014-02-10 11:09:55

标签: mysql sql database

我正在使用PHP,MySQL。我有两张桌子

1.categories

cat_id   cat_name

1        cars
2        mobile
3        computers
4        radios

2.posts

id       title     body    cat_id

1        title1    txt1    cars
2        title2    txt2    mobiles
3        title3    txt3    mobiles 
4        title4    txt4    radios

我想更新posts表,用category表替换cat_id值,并希望得到以下输出

id       title     body    cat_id

1        title1    txt1    1
2        title2    txt2    2
3        title3    txt3    2
4        title4    txt4    4

是否有可以一次性执行此操作的SQL语句?

3 个答案:

答案 0 :(得分:2)

这是一个SQL查询应该可以解决这个问题:

UPDATE posts JOIN categories ON posts.cat_id = categories.cat_name SET posts.cat_id = categories.cat_id

答案 1 :(得分:0)

尝试

UPDATE post p JOIN categories c ON p.cat_id=c.cat_name SET p.cat_id=c.cat_id

答案 2 :(得分:0)

使用以下查询。

将作为JOIN类别的帖子更新为b ON a.cat_id = b.cat_name SET a.cat_id = b.cat_id