mysql中用于左连接的是_Mysql左连接sql left join 语句详解

mysql教程左连接sql left join 语句详解

mysql左连接查询是联合查询中的一种方式,就是说把两个相关的表通过这种方式联合在一起查询,从而更加方便调用数据,避免多层循环嵌套。

左连接查询所用关键字 left join

,书面解释如下:

左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。

下面我解释一下,也就是说左链接查询的返回结果既包含了left join关键字左边表的全部资料,同时也包含了与左表匹配的右表中的符合条件的资源。 简单的说就是以左表为中心,连带右表中的符合条件的资源。

sql语句的写法:

sql: select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c

相信大家看完之后一定很晕把,没关系,我解释一下大家就都明白了,看似复杂,其实条理很清楚。它的意思是:

select a.a , a.b

a.a 就是a表中的a字段的意思。

select与from之间放的就是a表 b表中的相关要查询的字段。

from a left out join b

就是 从以a表为主左链接上右表b ,

匹配条件是 a表的a字段等于b表的c字段。

通过这几点解释相信大家也都明白百分之八十了,下面我们通过实例的演示再给大家说一下:

首先建立两个表

表pic

用于存放图片名字的表

create table `image`.`pic` (

`id` int( 10 ) not null auto_increment primary key ,

`pname` varchar( 20 ) character set utf8 collate utf8_unicode_ci not null

) engine = innodb

表二  用于存放图片评论的

create table `image`.`comment` (

`id` int( 10 ) not null auto_increment primary key ,

`pid` int( 10 ) not null ,

`content` varchar( 20 ) character set utf8 collate utf8_unicode_ci not null

) engine = innodb

下面我要联合查询这两个表通过一条sql语句,注意以前咱们查询两个表肯定是先写一个表的sql然后在根据条件循环查询另一个表,现在不用了,通过这种查询,把返回结果放到一个数组中,

sql语句写法:select

pic.*,comment.*

from

pic left join comment

on

pic.id=comment.pid

代码如下:

$conn = mysql_connect("localhost","root","");

if(!$conn){

die('连接mysql数据库教程失败: ' . mysql_error());

}

mysql_select_db('image');

$sql="select

pic.*,comment.*

from

pic left join comment

on

pic.id=comment.pid";

$re=mysql_query($sql);

while($re1=mysql_fetch_array($re))

{

$arr[]=$re1;

}

print_r($arr);

打印结果如下:

array

(

[0] => array

(

[0] => 1

[id] => 1

[1] => aaaaaaaaa

[pname] => aaaaaaaaa

[2] => 1

[3] => 1

[pid] => 1

[4] => ccccccc

[content] => ccccccc

)

[1] => array

(

[0] => 2

[id] => 2

[1] => bbbbbbbbbbb

[pname] => bbbbbbbbbbb

[2] => 2

[3] => 2

[pid] => 2

[4] => vvvvvvv

[content] => vvvvvvv

)

)

ok

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值