需求:有的文章关联多张图片,有的文章无关联图片,怎么查询的时候把所有文章都查询出来呢? 需求:有的文章关联多张图片,有的文章无关联图片,怎么查询的时候把所有文章都查询出来呢?大家都是怎么做的呢?我现在的做法比较笨就是先按关联关系查,然后就单独查文章,然后把最后的结果综合,删去重复的。但是工作量比较大。不知道大家在工作的时候都是如何处理的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式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) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。 不好意思,整理了下是这样: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表的数据也一并查出 什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ? 3. 结果是什么样,(并给以简单的算法描述) 什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ? 3. 结果是什么样,(并给以简单的算法描述)SELECT * FROM `a` , `b` WHERE b.a_id = a.id这样只能查询到a并关联有b表的信息;如果a表有一条数据,但b表没有关联该数据;这样就查询不到了。所以想综合SELECT * FROM `a`的结果,能不能一次性查出来 SELECT * FROM `a` left join `b` on b.a_id = a.id 真遗憾,我一直不太明白这些join的用法,斑竹能推荐一些书籍或者好的文章看下吗? auto_increment问题 大神赐教,运行出错 再问,还没解决(同一字段插入到两个表,主要是还有别的数据分别插入!last_id()怎么用) 刚才发现有个表在2天之内被误删除了,如何恢复? 急求mysql 存储过程中,in 查询字符问题? 在mysql5中使用中文表名,中文字段名在开发中会有问题么? postgresql 里表名字或者字段名字必须用小写吗?如果有大写字母怎么办 mysql,明明没有表,建一个表就出错,说表已经存在 两条sql语句,,求解 mysql中输入不了中文,求解 mysql递归查询排序问题 求一个mysql的存储过程..
参考一下这个贴子的提问方式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)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
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表的数据也一并查出
什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ? 3. 结果是什么样,(并给以简单的算法描述)
什么是 查出a表中的所有数据,并且a表有附属的b表的数据也一并查出 ? 3. 结果是什么样,(并给以简单的算法描述)
SELECT *
FROM `a` , `b`
WHERE b.a_id = a.id
这样只能查询到a并关联有b表的信息;如果a表有一条数据,但b表没有关联该数据;这样就查询不到了。所以想综合
SELECT *
FROM `a`的结果,能不能一次性查出来
FROM `a` left join `b` on b.a_id = a.id