如何使用translate表转换user表中gender与computer字段的值?
MySQL字段关联翻译解决方案
要实现把user表中gender和computer的数值转换成translate表对应的文本,你需要两次关联同一个translate表(因为两个字段都映射到这个表的不同id),通过表别名来区分两次关联的实例。
具体SQL语句
SELECT u.id, u.name, t_gender.trans AS gender, t_computer.trans AS computer FROM user u JOIN translate t_gender ON u.gender = t_gender.id JOIN translate t_computer ON u.computer = t_computer.id;
语句解释
- 给
user表起别名u,简化代码书写; - 第一次关联
translate表并起别名t_gender,用user.gender匹配translate.id,拿到对应的性别文本; - 第二次关联
translate表并起别名t_computer,用user.computer匹配translate.id,拿到对应的设备文本; - 最后通过
AS关键字把翻译后的字段重命名为原来的字段名,保证结果和你期望的结构一致。
如果存在user表中某些gender或computer值在translate表中没有对应id的情况,可以把JOIN换成LEFT JOIN,这样不匹配的字段会显示NULL而不是过滤掉整条数据。
内容的提问来源于stack exchange,提问作者Benjamin W
相关产品推荐
相关产品推荐

