我只是意识到我的措辞很差
我正在尝试找出是否可以在插入语句中执行此操作,而不是尝试输出数据时
这听起来可能很混乱,但希望我能解释一下。
我有两个表,expertise
(父级)和department
(子级)
我拥有以下专业知识:
exp_id int(2) primary key
exp_name varchar(30)
在部门中,我有:
dep_id int(2) primary key
dep_name varchar(30)
exp_id int(2) foreign key
我不希望部门行的结果如下所示:
dep_id dep_name exp_id
1 accounting 32
1 accounting 27
1 accounting 29
我想看起来像这样
dep_id dep_name exp_id
1 accounting 32, 27, 29
因此,如果有意义的话,一行中有多行。
我相信我必须配合使用它,但是我以前从未使用过它,并且一直在寻求帮助
我只是意识到我的措辞很差
我试图找出我是否可以在插入语句中执行此操作,而不是尝试输出数据时
最佳答案
您应该可以使用group_concat
,即:
select dep_id, dep_name, group_concat(exp_id) exp_id
from department
group by dep_id, dep_name
您还应该考虑对部门表进行规范化,由于
dep_id, dep_name
的重复组,它目前违反了第一范式。 reference here编辑
我看到您更新了问题,说您希望将数据以这种方式存储在表中,而不显示。
答案是:您真的不知道。
分隔的字段几乎无法处理,并且在rdbms中都是可怕的。如果绝对必须以这种方式使用它,则可以使用上面的查询来创建视图,并至少以适当的规范化方式存储实际数据。
重新重申。请不要这样做。小猫会死。
关于mysql - 如何连接外键中的信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30633967/