需求:有的文章关联多张图片,有的文章无关联图片,怎么查询的时候把所有文章都查询出来呢?
大家都是怎么做的呢?
我现在的做法比较笨就是先按关联关系查,然后就单独查文章,然后把最后的结果综合,删去重复的。
但是工作量比较大。不知道大家在工作的时候都是如何处理的

解决方案 »

  1.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  2.   

    不好意思,整理了下是这样:
    CREATE TABLE IF NOT EXISTS `a` (
      `description` text,
      `id` int(11) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;--
    -- 转存表中的数据 `a`
    --INSERT INTO `a` (`description`, `id`) VALUES
    ('description1', 1),
    ('description2', 2),
    ('description3', 3),
    ('description6', 4),
    ('description7', 5);-- ----------------------------------------------------------
    -- 表的结构 `b`
    --CREATE TABLE IF NOT EXISTS `b` (
      `content` text,
      `a_id` int(11) NOT NULL,
      `id` int(11) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;--
    -- 转存表中的数据 `b`
    --INSERT INTO `b` (`content`, `a_id`, `id`) VALUES
    ('content1', 1, 1),
    ('content2', 1, 2),
    ('content3', 1, 3),
    ('content4', 2, 4),
    ('content5', 2, 5);b表关联着a表,a表一条数据可能关联多条b表的数据,也可能一条也不关联。
    现在需要查出a表中的所有数据,并且a表有附属的b表的数据也一并查出
      

  3.   


    什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ?   3. 结果是什么样,(并给以简单的算法描述)
      

  4.   


    什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ?   3. 结果是什么样,(并给以简单的算法描述)
    SELECT * 
    FROM  `a` ,  `b` 
    WHERE b.a_id = a.id
    这样只能查询到a并关联有b表的信息;如果a表有一条数据,但b表没有关联该数据;这样就查询不到了。所以想综合
    SELECT * 
    FROM  `a`的结果,能不能一次性查出来
      

  5.   

    SELECT * 
    FROM  `a` left join   `b` on  b.a_id = a.id
      

  6.   

    真遗憾,我一直不太明白这些join的用法,斑竹能推荐一些书籍或者好的文章看下吗?