数据结构设置的不太合理,查询效率会比较低,假设表名分别是images和products
请参考下列语句:
select a.thumbnailId,
(select path from images where id=a.thumbnailId)
as thumbnailPath,t. imageId,
t.imagePath from products a
left join
(select b.imageId,group_concat(c.path) as imagePath
from products b,images c
where b.imageId like concat('%',c.id,'%') group by b.imageId) t
on a.imageId=t.imageId
实际测试如下:
测试代码
images源数据
products源数据
输出效果
说明:图片ID要统一ID位数(如试验中全部统一为4位图片ID),输出才准确
谈一点个人的看法:从库结构设计来看,通常来说,两个库相关联的字段是以唯一值为基础的,可能是一对多的关系,但通常是用的 ID 来做。比如:news 的 newstype 用 newstype_ID 与 newstype 库的 ID 相关联。
建议可以参考一下其他数据库的设计,比如:Discuz 论坛中的库结构。
1、用到MySQL的 FIND_IN_SET() 函数。
2、主表:recruitment_demand,子表:recruitment_jobs
需求:需要查询出主表以及关联的子表中的work_name、和user_num字段,work_name拼接起来用逗号隔开,以及统计user_num的总和。
查询语句:
结果图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)