首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果其他表sqlite3中存在元素,则替换

如果其他表sqlite3中存在元素,则替换
EN

Stack Overflow用户
提问于 2017-11-06 21:00:49
回答 2查看 42关注 0票数 0

我有两张桌子。

表: gender_age_train

代码语言:javascript
运行
复制
index       Unnamed: 0  device_id             gender      age         group       phone_brand
    ----------  ----------  --------------------  ----------  ----------  ----------  -----------
    1           0           -8076087639492063270  M           35          M32-38      小米         
    2           1           -2897161552818060146  M           35          M32-38      小米         
    3           2           -8260683887967679142  M           35          M32-38      小米         
    4           3           -4938849341048082022  M           30          M29-31      小米         
    5           4           245133531816851882    M           30          M29-31      小米         
    6           5           -1297074871525174196  F           24          F24-26      OPPO       
    7           6           236877999787307864    M           36          M32-38      酷派         
    8           7           -8098239495777311881  M           38          M32-38      小米         
    9           8           176515041953473526    M           33          M32-38      vivo       
    10          9           1596610250680140042   F           36          F33-42      三星   

表: chinese_latin_translation

代码语言:javascript
运行
复制
index       chinese     latin_brands
----------  ----------  ------------
1           三星          samsung     
2           天语          Ktouch      
3           海信          hisense     
4           联想          lenovo      
5           欧比          obi         
6           爱派尔         ipair       
7           努比亚         nubia       
8           优米          youmi       
9           朵唯          dowe        
10          黑米          heymi  

如果gender_age_train表中的品牌以中文字母存在,该如何用latin_brands列中的翻译替换该品牌

如果有翻译的话,我不想替换完整的列,只想替换行。

数据集的行数超过1mio。本例中的重要列只有phone_brandlatin_brands

查询示例:

代码语言:javascript
运行
复制
SELECT latin_brands, phone_brand  FROM gender_age_brand_train LEFT JOIN chinese_latin_translation on gender_age_brand_train.phone_brand = chinese
EN

回答 2

Stack Overflow用户

发布于 2017-11-06 21:04:05

在chinese_latin_translation和gender_age_train之间使用left join

代码语言:javascript
运行
复制
select
    A.index,
    A.Unnamed,
    A.device_id,
    A.gender,
    A.age,
    A.group,
    coalesce(B.latin_brands,A.phone_brand) as brand
from 
    gender_age_train A
    left join chinese_latin_translation B on
        A.phone_brand= B.chinese     
票数 0
EN

Stack Overflow用户

发布于 2017-11-06 21:07:52

这应该符合您请求,使用update行的内部联接

代码语言:javascript
运行
复制
UPDATE  T2
SET    T2. Name = T1 .Name
FROM   gender_age_train as T2 INNER JOIN Table1 as T1
ON     T1. Id = T1 .Id;

现在你可以设置你的查询了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47137610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档