根据另一个 table mysql 用 table 中的字符串替换数字

Replace number with string in table based on another table mysql

我有一个与我为 MySQL 数据库开发的前端相关的问题。我有两个 tables,table 1 (T1) 由一列整数组成,table 2 (T2) 由一个整数列和相应的字符串列组成。 T1和T2的长度不一样。

T1 看起来像这样:

num_t1
1
4
6
1
5
3

T2 看起来像这样:

num_t2| string_t2
1     | s1
2     | s2
3     | s3
4     | s4
5     | s5

我想要的是 SELECT T1,但不是获取整数,我想要一个包含来自 T2 的字符串的列,其中 num_t1 和 num_t2 相等。有道理吗?

所以,如果我说

SELECT * FROM T1

而不只是 num_t1,我想要

s1
s4

s1
s5
s3

这样做需要什么代码?现在我有一个像这样的静态修复

SELECT * FROM T1
CASE WHEN num_t1 = 1 THEN 's1'
     WHEN num_t1 = 2 THEN 's1'
     so on...
     ELSE 'Not available'
END AS num_t1_string

有没有更动态的方式?所以我不需要每次更改 T1 和 T2 中的整数或字符串时都修改查询。

如果需要更多说明,请告诉我。

编辑:第一个问题现在用括号内的代码解决了:

SELECT num_id
(SELECT T2.string_t2
FROM T1 LEFT JOIN T2
ON T1.num_t1 = T2.num_t2
ORDER BY T1.num_t1) AS string_t1
FROM T1

但是,当我尝试对其进行子查询时,出现错误 1242。子查询 returns 多于一行。我该如何解决这个问题?

正如我所说,您可以使用像

这样的连接查询
select T1.num_t1,T2.string_t2 from T1 left join T2 on T1.num_t1=T2.num_t2

我在这里使用了右连接来获取table T1

的完整数据

如果需要完整的文档,可以参考这个link

http://dev.mysql.com/doc/refman/5.7/en/join.html