Mysql SQL Join返回zerro,但应返回正确的值

Mysql SQL Join返回zerro,但应返回正确的值,mysql,sql,Mysql,Sql,非常感谢您以前的帮助- 但我仍然没有加入的运气,这是一个问题 我有一张名为-技能和艺术家 表skills有列:id、cat\u id和skill 这将是: 26 52 Test 27 52 Test2 James [26,27] Putin [26,27] 注意:52这是类别id,它存储在表-类别中 表艺术家有列:姓名,技能 这将是: 26 52 Test 27 52 Test2 James [26,27] Putin [26,27] 我所做的: select name, skills

非常感谢您以前的帮助-

但我仍然没有加入的运气,这是一个问题

我有一张名为-技能艺术家

skills有列:idcat\u idskill

这将是:

26 52 Test
27 52 Test2
James [26,27]
Putin [26,27]
注意:52这是类别id,它存储在表-类别中

艺术家有列:姓名技能

这将是:

26 52 Test
27 52 Test2
James [26,27]
Putin [26,27]
我所做的:

select name, skills from artist limit 10
它给了我一个结果,就像

Putin [26,27]
然后我决定看的不是身份证而是真名,所以我看了

select s.skill, a.Name
from skills as s, artist as a
where s.id = a.skills
我期待着,我会看到:

Putin [test1, test2]
但是,我得到的不是这个

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0008 seconds.)

我尝试了很多不同的方法,你能说,为什么它不起作用,我错过了什么吗?

加入表格,按艺术家分组。命名并使用group\u concat():


首先,您需要修复您的数据模型-将逗号分隔的值存储到单个列中是一个很大的问题。您应该对此进行适当的规范化。您的意思是,在SQL中返回类似于[25,26]的内容是不好的?将多个值存储到单个列中是“不好的”,就像您现在使用
技能
列所做的那样。这应该在一个额外的表中,每行连接一个艺术家id和一个技能id。请阅读关键字数据库规范化。我同意您的数据模型需要理顺。在任何情况下,
artist.skills
的数据类型是什么?它是一个
数组吗?您正在使用什么DBMS(即Postgres、MySql)?@04FS将读取;)只有一个问题-您的解决方案,每个用户只返回一个技能,[skillName],但如果用户有[skillName,skillName],该怎么办?请检查:它返回所有技能名称。出于某些原因,我只有一个技能,即使用户有2;)但是我想我可以解决它。检查逗号之间的空格。但是,现在我需要删除所有数据库中的空格:)