如何解决mysql加入哪里
表1:
id name value_ids
1 extras 5,6
2 brand 7
表2:
id value
5 extra1
6 extra2
7 brand1
我的问题是,如何查询表以获取诸如此类的信息:
1。
name value
extras extra1,extra2
brand brand1
或
2。
name value
extras extra1
extras extra2
brand brand1
解决方法
您可以使用find_in_set()
获得第二个结果集:
select t1.name,t2.value
from t1
inner join t2 on find_in_set(t2.id,t1.value_ids)
更好的选择是修复您的数据模型。您不应在单个列中存储多个值(数字!)。相反,您应该有一个单独的表来表示表之间的多对多关系,每个ID的元组都存储在单独的行中。
推荐阅读:Is storing a delimited list in a database column really that bad?
,SELECT t1.name,t2.value
FROM table_1 t1
INNER JOIN table_2 t2 ON find_in_set(t2.id,t1.value_ids);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。