dongre6073 2016-11-02 00:07
浏览 62
已采纳

MySQL用查询匹配的concat更改id

So I have three tables. I want the first table to match the third table based on their matching ids. Afterwards, I want the third table's id to be replaced by the second table's id (concat'd with a 'g' in front), which is identified through a select query on the first and second table.

Here's my rough idea of how it should go, just not too sure of how to match, then use tbl2's id:

UPDATE tbl3 SET col=CONCAT('g',tbl2.id) WHERE 
id IN (
    SELECT tbl1.id, tbl2.id FROM tbl1 left join tbl2 on tbl1.id = tbl2.id 
    WHERE blah='blah'); 

Is this possible in MySQL alone or will I have to do it in php using multiple queries?

  • 写回答

1条回答 默认 最新

  • dsa45132 2016-11-02 00:56
    关注

    So I found a MySQL fiddle site. Not bad, but doesn't allow UPDATE. Anyway, at least you can see the SELECT working:

    http://sqlfiddle.com/#!9/bfdb66/7

    Here's the SQL:

    UPDATE tbl3 t3
    LEFT JOIN tbl1 t1 ON t3.id=t1.id 
    LEFT JOIN tbl2 t2 ON t2.id=t1.id
    SET t3.col=CONCAT('g',t2.id) WHERE
    t3.blah = 'blah' AND t2.id IS NOT NULL;
    

    According to this spec:

    • I want the first table to match the third table based on their matching ids
    • I want the third table's id to be replaced by the second table's id
    • which is identified through a select query on the first and second table

    Let me know if I've misunderstood!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么