表1:
id1 | ref_table2(tinytext)
1 | 2,3,5
2 | 1,3,4
3 | 2个
表2:
id2 | name2(tinytext)
1 | ABC
2 |高清
3 | GHI
4 | JKL
5 | MNO
6 | PQR
如果我从table1中获取特定条目,我想列出所有table2项,其id属于table1(2,3,5)中的“ref”字符串。
“2,3,5”的所需输出为:
id |名称
2 |高清
3 | GHI
5 | MNO
答案 0 :(得分:1)
在一列中存储多个值是不好的做法。我推荐使用M:N表。结构看起来像这样
M:N table-
table1_val | ref_table2
1 | 2
1 | 3
1 | 5
2 | 1
2 | 3
2 | 4
3 | 2
然后你可以运行一个简单的查询
SELECT ref_table2 FROM mn_table WHERE table1_val = 1
将返回2,3和5.所以你可以使用嵌套查询,我相信看起来如下:
SELECT * FROM table2 WHERE id2 in (SELECT ref_table2 FROM mn_table WHERE table1_val = 1)