关联查询?

来源:1-1 框架的作用

暗淡冬天

2020-03-16 21:55:41

  1. 老师,帮我分析一下这两条语句的作用?和区别?(我想在查询blog表信息的时候,要将user表和type表的信息一起查出来,我该怎样设计SQL语句)

  2. 我希望老师除了帮我分析这两条SQL语句之外,还能帮我设计出一条更合适的SQL语句?

http://img.mukewang.com/climg/5e6f83f209e96e3716730108.jpg

http://img.mukewang.com/climg/5e6f843c09cffb3211130108.jpghttp://img.mukewang.com/climg/5e6f84800948d7c904210107.jpg


<!--获取全部博客-->
<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回答

好帮手慕小班

2020-03-17

同学你好,1、检查同学贴出的两个sql语句,一个是直接查询的得到的结果,如果查询的几张表数据量大的话会降低性能;

    一个是通过INNER JOIN的连接查询得到的结果。

这两个查询的结果可以说是一样的,但是使用INNER JOIN这样的内连接方法查询数据,在开发中会比较常用,使用这样的连接查询,即把业务逻辑放到了SQL中,由数据库来处理,相对来说开发效率会比较高些,但是查询效率相对来说,就会低一些。

    2、如果同学只是想查询blog表信息的时候,并且数据量比较少,要将user表和type表的信息一起查出来,同学可以使用第一种方法,直接根据条件查询出对应的数据。

        如果数据量大一些,推荐使用连接查询,由数据库进行对应表的匹配、连接,能够更好一些。

由上述内容可知,不同的场景,使用的方法是不同的,同学可以根据自己的具体应用来决定,表的连接查询都是这样的,并没有更好的方法了。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 8016 问题

查看课程

相似问题

关联查询。

回答 1

回答 1