问答详情
源自:2-2 join从句—左外连接

关于left join 的一些问题

什么时候要用left join,它的连接条件怎么确定,怎么知道用哪个表作为左表,又怎么确定要查询哪些字段呢,求解答。谢谢!

提问者:你说我叫啥好呢 2015-12-31 17:47

个回答

  • 堂堂堂堂糖糖糖童鞋
    2016-01-03 16:33:01
    已采纳

    第一个问题:什么时候用left join?说说我的理解

    两个表(left join左边的表称为左表,右边的称为右表)有主外键关联时,这个是前提条件,我们想同时查询两个表中的信息,这个时候可以采用这种left join,当然也可以用right join,简单说一下区别,left join是以左表为主,就是查询出左表的全部数据并查询出右表的主外键关联数据,right join相反。你可以找点文章看看。

    第二个问题:连接条件怎么确定?

    SELECT * FROM beasp_user u LEFT JOIN beasp_address a ON u.`id`=a.`user_id`

    这里u.'id' 中的 id 为左表的主键,a.'user_id'为右表的外键,指向 u 表的主键。就是主外键关联作为条件。

    第三个问题:怎么知道用那个表作为左表?

    就像第一个问题中所说的,想查询某个表中的所有内容,查询另一个表中的关联内容,那么想查询所有内容的表作为左表。

    第四个问题:怎么确定要查询那些字段?

    * 代表查询所有字段,如果想查询某个表的字段,可以使用 "表名(如果有别名,就用别名).*",如果想查询部分字段,可以使用“表名(如果有别名,就用别名).字段名”,如果字段有冲突,就为字段重新命名!


  • Sz6iVcj1154
    2017-03-28 21:22:57

    建议结合集合论&VENN图学习。

  • 连宏伟HW
    2016-06-06 16:12:54

    楼上大神 啊