Mysql 如何根据其他表列选择列?
我有两张桌子:表一和表二。 两个表如下所示: 这是表1 这是表2 现在我想根据table2.t1_ID获得table1.title,如AAA、BBB、CCC,如下所示: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
+----+----------+-----------+
| 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