我们说我有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中的数据插入城市值,是否可能?
由于
答案 0 :(得分:1)
由于您的记录已在表格中,因此您不希望INSERT
,UPDATE
。
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;