小弟由于情况特殊,用的是asp.net+mysql
正在做一个相册类的网站,遇到了这样一个问题,请大家帮个忙,谢谢情况是这样的, 就像有时你搜索到的视频专辑列表时, 每一项会列举出位于该视频专辑内的若干视频
现在有Album表和Photo表
Album表
id userid albumtitle
1  1      相册1
2  1      相册2
3  1      相册3
      .
      .
      .Photo表
id albumid phototitle
1  1       相片1
2  3       相片2
3  3       相片3
     .
     .
     .
情况是这样, 现在首先列举出符合(userid=1)的Album(最多12个)的id和albumtitle,  再列举出每个album所包含的Photo(最多4个)的id和phototitle应该是将他们合并成一张表输出
Album.id Photo.id Album.albumtitle Photo.phototitle
也就是最都有48条记录产生请问可以用1条sql语句完成任务吗? 或者有没些其它方案,  先谢谢大家了, 小弟急用, thanKs!

解决方案 »

  1.   


    select a.*,b.id,b.phototitle from 
    (select id,albumtitle from Album where userid = 1 limit 12) as a,
    (select * from Photo limit 4) as b
    where a.id = b.albumid;
      

  2.   

    生成笛卡尔积吧,去掉WHERE试试
    select a.*,b.id,b.phototitle from 
    (select id,albumtitle from Album where userid = 1 limit 12) as a,
    (select * from Photo limit 4) as b