从连接结果SQL插入值

时间:2016-08-26 10:55:26

标签: mysql sql mysql-workbench

我们说我有2个表,最近在tbl_review中添加了一个名为city的新列,并希望从其他表填充(tbl_bus)

tbl_review (uid,bid,rate,city)

tbl_bus (bid,city,lat,long)

通常我会加入

select A.city B.uid from tbl_bus A inner join tbl_review B on A.bid=B.bid

现在我想根据tbl_bus中的数据插入城市值,是否可能?

由于

3 个答案:

答案 0 :(得分:1)

由于您的记录已在表格中,因此您不希望INSERTUPDATE

UPDATE tbl_review a
LEFT JOIN tbl_bus b
    ON a.bid = b.bid
SET a.city = COALESCE(b.city, 'NA')

LEFT JOIN可能会发现tbl_review中的某些记录在tbl_bus中没有匹配的城市。在这种情况下,我选择使用文本NA作为占位符。如果您不介意空值,则可以删除COALESCE

但是,从设计的角度来看,如同@BhavinSolanki所提到的那样,可能不希望在两个表中存储相同的city信息。

答案 1 :(得分:0)

尝试以下查询:

Update tbl_review,tbl_bus
set tbl_review.city=tbl_bus.city 
WHERE tbl_review.uid = tbl_bus.bid;

答案 2 :(得分:0)

更新tbl_review,tbl_bus set tbl_review.city = tbl_bus.city WHERE tbl_bus.uid = tbl_review.bid;