Mysql左串連sql left join 語句詳解

來源:互聯網
上載者:User

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.