Code Bye

这个怎么查询

表1
id   rid            topid
1   1001          101
2   1002          102
3   1003          103
4   1004          104
5   1005          104
6   1006          104
表2
id  tid           url
1   1004      /uploads/1.jpg
2   1005      /uploads/2.jpg
3    1006     /uploads/3.jpg
4    1007     /uploads/4.jpg
5    1008     /uploads/5.jpg
6    1009    /uploads/6.jpg
表3
id   aid   url
1     1      /uploads/sm1.jpg
2     1      /uploads/sm2.jpg
3     1      /uploads/sm3.jpg
4     2      /uploads/sm4.jpg
5     2      /uploads/sm5.jpg
6     2      /uploads/sm6.jpg
这是一个栏目查询,本人想通过表1给的topid=104为参数,查询出在表2全部子栏目的图片路径以及子栏目在表3对于的三张图片,相当于最后是四个图片一个组合,怎么弄,请教。
解决方案

80

select
aa.topid,
GROUP_CONCAT(aa.url) as url
from
(
select
distinct
a.topid,
表3.url as url
from
表1 as a
left join 表2 as b on a.topid=b.tid
left join 表3 as c on b.id=c.aid
where a.topid=104
union all
select
distinct
a.topid,
表2.url as url
from
表1 as a
left join 表2 as b on a.topid=b.tid
where a.topid=104
) as aa
group aa.topid

20

   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx … 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这个怎么查询