Mysql 如何根据其他表列选择列?

Mysql 如何根据其他表列选择列?,mysql,sql,Mysql,Sql,我有两张桌子:表一和表二。 两个表如下所示: 这是表1 这是表2 现在我想根据table2.t1_ID获得table1.title,如AAA、BBB、CCC,如下所示: +----+----------+-----------+ | id | t2_title | t1_titles | +----+----------+-----------+ | 1 | John | AAA,CCC | +----+----------+-----------+ | 2 | Sam

我有两张桌子:表一和表二。 两个表如下所示:

这是表1

这是表2

现在我想根据table2.t1_ID获得table1.title,如AAA、BBB、CCC,如下所示:

+----+----------+-----------+
| id | t2_title | t1_titles |
+----+----------+-----------+
| 1  | John     | AAA,CCC   |
+----+----------+-----------+
| 2  | Sam      | BBB       |
+----+----------+-----------+
| 3  | Monty    | AAA,BBB   |
+----+----------+-----------+
| 4  | Rose     | BBB,CCC   |
+----+----------+-----------+

修正你的数据模型!ID不应存储在字符串列表中。数字不应存储为字符串。应该正确声明外键关系!要做的第一件事是不要设计一个将ID以逗号分隔的列表形式存储到另一个表的表。您需要一个数据透视表来创建多对多关系。
+----+----------+--------+
| id | t2_title | t1_IDs |
+----+----------+--------+
| 1  | John     | 1,3    |
+----+----------+--------+
| 2  | Sam      | 2      |
+----+----------+--------+
| 3  | Monty    | 1,2    |
+----+----------+--------+
| 4  | Rose     | 2,3    |
+----+----------+--------+
+----+----------+-----------+
| id | t2_title | t1_titles |
+----+----------+-----------+
| 1  | John     | AAA,CCC   |
+----+----------+-----------+
| 2  | Sam      | BBB       |
+----+----------+-----------+
| 3  | Monty    | AAA,BBB   |
+----+----------+-----------+
| 4  | Rose     | BBB,CCC   |
+----+----------+-----------+
SELECT  a.id,
        t2_title,
        GROUP_CONCAT(b.t1_title ORDER BY b.id)
FROM    table2 a
        INNER JOIN table1 b
            ON FIND_IN_SET(b.t1_title, a.t1_IDs) > 0
GROUP   BY a.id,a.t2_title