关联查询?
来源:1-1 框架的作用
暗淡冬天
2020-03-16 21:55:41
老师,帮我分析一下这两条语句的作用?和区别?(我想在查询blog表信息的时候,要将user表和type表的信息一起查出来,我该怎样设计SQL语句)
我希望老师除了帮我分析这两条SQL语句之外,还能帮我设计出一条更合适的SQL语句?
<!--获取全部博客--> <select id="queryBlogs" resultMap="blog"> SELECT b.blog_id, b.title, b.content, b.first_picture, b.flag, b.views, b.appreciation, b.share_statement, b.comment_status, b.published, b.recommend, b.create_time, b.last_edit_time, u.user_id, u.nick_name, t.type_id, t.type_name FROM t_blog b, t_user u, t_type t <where> b.user_id = u.user_id AND b.type_id = t.type_id </where> ORDER BY b.last_edit_time DESC </select>
<!--获取全部博客--> <select id="queryBlogs" resultMap="blog"> SELECT b.blog_id, b.title, b.content, b.first_picture, b.flag, b.views, b.appreciation, b.share_statement, b.comment_status, b.published, b.recommend, b.create_time, b.last_edit_time, u.user_id, u.nick_name, t.type_id, t.type_name FROM t_blog b INNER JOIN t_user u ON (u.user_id = b.user_id) INNER JOIN t_type t ON (t.type_id = b.type_id) ORDER BY b.last_edit_time DESC </select>
1回答
同学你好,1、检查同学贴出的两个sql语句,一个是直接查询的得到的结果,如果查询的几张表数据量大的话会降低性能;
一个是通过INNER JOIN的连接查询得到的结果。
这两个查询的结果可以说是一样的,但是使用INNER JOIN这样的内连接方法查询数据,在开发中会比较常用,使用这样的连接查询,即把业务逻辑放到了SQL中,由数据库来处理,相对来说开发效率会比较高些,但是查询效率相对来说,就会低一些。
2、如果同学只是想查询blog表信息的时候,并且数据量比较少,要将user表和type表的信息一起查出来,同学可以使用第一种方法,直接根据条件查询出对应的数据。
如果数据量大一些,推荐使用连接查询,由数据库进行对应表的匹配、连接,能够更好一些。
由上述内容可知,不同的场景,使用的方法是不同的,同学可以根据自己的具体应用来决定,表的连接查询都是这样的,并没有更好的方法了。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~