mysql – 用于映射列表的SQL查询语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 用于映射列表的SQL查询语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1556字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 用于映射列表的SQL查询语法](/upload/InfoBanner/zyjiaocheng/904/4d8823b056a74f818344b02f7c77e0be.jpg)
我是SQL的新手;这是一个志愿者项目.我知道基础知识并且有其他编程语言的经验,但很长一段时间都没有做过.我自己已经找到了答案,但我无法将我发现的任何内容翻译成我想做的事情.
我用的是mysql.
我有一个table1,数据列表如下:
id list list2
1 2,3,4 4
2 1,3 5,2
3 2,4,5 1
4 3 4
和另一个像这样的table2
list nlist
1 5
2 3
3 4
4 1
5 2
这个说法
select table1.id, table1.list, table2.nlist, table1.list2
from table1
join table2 on table1.list=table2.list;
结果是:
id list nlist list2
1 2,3,4 3 4
2 1,3 5 5,2
3 2,4,5 3 1
4 3 4 4
但我需要生成这样的结果:
id list nlist list2
1 2,3,4 3,4,1 4
2 1,3 5,4 5,2
3 2,4,5 3,1,2 1
4 3 4 4
实质上,将nlist映射到原始表中. (id字段是一个自动生成的键,list / nlist / list2字段是varchars.)(list / nlist / list2列中的所有值都是整数或逗号分隔的整数列表.)(哦,我做了不设计数据结构!)
我想在select语句的第一部分而不是’table2.nlist’,我需要在那里放一个函数,大概是一个循环/映射类型函数?这是对的还是我再次失去了?
(然后我需要提取nlist包含list2没有的数字的行,但我还没有这样做.)
编辑
谢谢valex!这最终给了我所需要的东西:
SELECT t1.id,
t1.list,
GROUP_CONCAT(t2.nlist) nlist,
t2.list2
FROM table1 t1 JOIN table2 t2
WHERE FIND_IN_SET(t2.list,t1.list) IS TRUE
GROUP BY t1.id;
解决方法:
尝试使用FIND_IN_SET连接表,然后使用GROUP_CONCAT来形成nlist字段:
SELECT t1.id,
MAX(t1.list) list,
GROUP_CONCAT(t2.newlist) nlist,
MAX(t1.list2) list2
FROM Table1 t1
JOIN Table2 t2 on FIND_IN_SET(t2.id,t1.list)
GROUP BY t1.id
内容总结
以上是互联网集市为您收集整理的mysql – 用于映射列表的SQL查询语法全部内容,希望文章能够帮你解决mysql – 用于映射列表的SQL查询语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。