修改列名称,类型为tinyint(1)。 如何使用选择查询将列值提取为是/否。 并且我在一个包中有3个文档名称,而使用select查询时,文档名称被拆分为具有相同包名称的三行。
以下是该列已拆分为三行的示例: 预期产出:
name | data
abc | a,b,c
def | be
实际输出:
name | data
abc | a
abc | b
abc | c
def | be
这是代码:
select p.filename,p.version,doc.name from certificate_packages cp join packages p on cp.package_id=p.id left join package_documents pd on p.id=pd.package_id left join documents doc on doc.id=pd.document_id where cp.certificate_id=1099;
[![Attached the screenshot][1]][1]
答案 0 :(得分:0)
根据我们的评论,最终解决方案是。您需要提供gorup_by p.filename,p.version ;
列名称,如此
select p.filename,p.version,GROUP_CONCAT(doc.name) AS name
from certificate_packages cp
join packages p
on cp.package_id=p.id
left join package_documents pd
on p.id=pd.package_id
left join documents doc
on doc.id=pd.document_id
where cp.certificate_id=1099
p.filename,p.version ;