想册表dto_photo(photoid,userid)主建是:photoid
图片表dto_picinfo(picid,userid,photoid)主建是:picid
想查询出会员ID(userid)为10031的所有想册的信息和,每个想册拥有多少照相片.
SELECT   count(*) as num,dto_photo.* from   dto_picinfo,dto_photo where   dto_photo.userid=10031  GROUP   by  dto_photo.photoid   ORDER   by   COUNT(*)   DESC limit 0,15 
这样的话,每个想册拥有的照片都是一样,都是为哪个用户拥有的相片总数,不是每个想册拥有的照片数.SELECT   count(*) as num,dto_photo.* from   dto_picinfo,dto_photo where   dto_photo.userid=10031 and dto_picinfo.Photoid=dto_photo.Photoid GROUP   by  dto_photo.photoid   ORDER   by   COUNT(*)   DESC limit 0,15 
这样的话话,只要哪个用户拥有的想册没有一张相片就查不出哪个想册的信息! 要怎么写才能可以了!!

解决方案 »

  1.   

    select photoid,count(picid)
    from dto_photo left join dto_picinfo on dto_photo.photoid=dto_picinfo.photoid
    where dto_photo.userid=10031
    建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
      

  2.   

    dto_photo(photoid,userid)主建是:photoid 
    图片表dto_picinfo(picid,userid,photoid)主建是:picid 
    ----------------------------------
    select userid,count(photo_id) from dto_phpto t
    join 
    (select userid,count(picid) from dto_picinfo) tt
    on t.userid=tt.userid
    group by t.userid
      

  3.   

    CREATE TABLE `dto_photo` (
      `Photoid` int(11) unsigned NOT NULL auto_increment,
      `Userid` int(11) NOT NULL,
      `Photoname` varchar(50) default NULL,
      `Photopath` varchar(255) default 'null',
      `Cateid` int(8) default '0',
      `photoinfo` varchar(255) default NULL,
      `Ispublic` tinyint(1) default '0',
      `Accesspass` varchar(32) default 'null',
      `Jd_id` varchar(255) default NULL,
      `Area_id` varchar(200) default NULL,
      `Createtime` datetime default NULL,
      `Readcount` int(11) default '0',
      `Status` tinyint(1) NOT NULL default '1',
      PRIMARY KEY  (`Photoid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=470 DEFAULT CHARSET=gbk CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;-- Table "dto_picinfo" DDLCREATE TABLE `dto_picinfo` (
      `Picid` int(10) unsigned NOT NULL auto_increment,
      `Userid` int(11) NOT NULL,
      `Photoid` int(11) NOT NULL,
      `Pic_object` varchar(30) NOT NULL,
      `Pic_info` varchar(255) NOT NULL,
      `Org_path` varchar(200) NOT NULL,
      `Org_width` smallint(5) NOT NULL default '0',
      `Org_height` smallint(5) NOT NULL default '0',
      `Pic600_path` varchar(200) NOT NULL,
      `Pic400_path` varchar(200) NOT NULL,
      `Pic120_path` varchar(200) NOT NULL,
      `Access_count` int(10) NOT NULL,
      `Uploadtime` datetime default NULL,
      `Status` tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (`Picid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=10275 DEFAULT CHARSET=gbk CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;-- Table "dto_picinfo" DDLCREATE TABLE `dto_picinfo` (
      `Picid` int(10) unsigned NOT NULL auto_increment,
      `Userid` int(11) NOT NULL,
      `Photoid` int(11) NOT NULL,
      `Pic_object` varchar(30) NOT NULL,
      `Pic_info` varchar(255) NOT NULL,
      `Org_path` varchar(200) NOT NULL,
      `Org_width` smallint(5) NOT NULL default '0',
      `Org_height` smallint(5) NOT NULL default '0',
      `Pic600_path` varchar(200) NOT NULL,
      `Pic400_path` varchar(200) NOT NULL,
      `Pic120_path` varchar(200) NOT NULL,
      `Access_count` int(10) NOT NULL,
      `Uploadtime` datetime default NULL,
      `Status` tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (`Picid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=10275 DEFAULT CHARSET=gbk CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;
      

  4.   

    INSERT INTO dto_photo
       (`Photoid`, `Userid`, `Photoname`, `Photopath`, `Cateid`, `photoinfo`, `Ispublic`, `Accesspass`, `Jd_id`, `Area_id`, `Createtime`, `Readcount`, `Status`)
    VALUES
       (456, 10031, '好看', 'F:\\soft\\tomcat5\\webapps\\daotoo\\img\\2009-09-29\\2009-09-29 1014492.jpg', 0, '1', 0, NULL, '1', '1', '2009-10-7 13:07:36', 0, 1);INSERT INTO dto_photo
       (`Photoid`, `Userid`, `Photoname`, `Photopath`, `Cateid`, `photoinfo`, `Ispublic`, `Accesspass`, `Jd_id`, `Area_id`, `Createtime`, `Readcount`, `Status`)
    VALUES
       (457, 10031, 'haowan', 'F:\\soft\\tomcat5\\webapps\\daotoo\\img\\2009-09-29\\2009-09-29 1014492.jpg', 0, '0', 0, NULL, '1', '1', NULL, 0, 1);INSERT INTO dto_photo
       (`Photoid`, `Userid`, `Photoname`, `Photopath`, `Cateid`, `photoinfo`, `Ispublic`, `Accesspass`, `Jd_id`, `Area_id`, `Createtime`, `Readcount`, `Status`)
    VALUES
       (458, 10031, 'haochi', 'F:\\soft\\tomcat5\\webapps\\daotoo\\img\\2009-09-29\\2009-09-29 1014492.jpg', 0, '1', 0, NULL, '1', '1', '2009-10-6 13:07:53', 0, 1);INSERT INTO dto_photo
       (`Photoid`, `Userid`, `Photoname`, `Photopath`, `Cateid`, `photoinfo`, `Ispublic`, `Accesspass`, `Jd_id`, `Area_id`, `Createtime`, `Readcount`, `Status`)
    VALUES
       (459, 10026, '1', 'F:\\soft\\tomcat5\\webapps\\daotoo\\img\\2009-09-29\\2009-09-29 1014491.jpg', 0, '1', 0, '', '1', '1', '2009-9-27 16:20:14', 0, 0);
    INSERT INTO dto_picinfo
       (`Picid`, `Userid`, `Photoid`, `Pic_object`, `Pic_info`, `Org_path`, `Org_width`, `Org_height`, `Pic600_path`, `Pic400_path`, `Pic120_path`, `Access_count`, `Uploadtime`, `Status`)
    VALUES
       (10264, 10031, 456, '', '', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/2009-10-12 1718560.jpg', 308, 450, 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min/2009-10-12 1718560.jpg', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min1/2009-10-12 1718560.jpg', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min2/2009-10-12 1718560.jpg', 0, '2009-10-12 17:18:56', 0);
      

  5.   

    INSERT INTO dto_picinfo
       (`Picid`, `Userid`, `Photoid`, `Pic_object`, `Pic_info`, `Org_path`, `Org_width`, `Org_height`, `Pic600_path`, `Pic400_path`, `Pic120_path`, `Access_count`, `Uploadtime`, `Status`)
    VALUES
       (10264, 10031, 456, '', '', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/2009-10-12 1718560.jpg', 308, 450, 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min/2009-10-12 1718560.jpg', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min1/2009-10-12 1718560.jpg', 'F:/soft/tomcat5/webapps/daotoo/img/2009-10-12/min2/2009-10-12 1718560.jpg', 0, '2009-10-12 17:18:56', 0);