thinkphp中join用法

來源:互聯網
上載者:User

標籤:查詢   其他   uip   work   left join   ups   混合   think   sel   

JOIN方法也是連貫操作方法之一,用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料。

附上項目中的left join用法的代碼:

1 $data = M("groups g")2    ->field(‘g.id,g.group_name,e.uid‘)3    ->join(‘left join equipment e ON g.group_name = e.group_name‘)4     ->where(array(‘g.user_id‘ => ‘1‘))5     ->select();

 

下面是手冊中的例子:

join通常有下面幾種類型,不同類型的join操作會影響返回的資料結果。

  • INNER JOIN: 如果表中有至少一個匹配,則返回行,等同於 JOIN
  • LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
  • RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
  • FULL JOIN: 只要其中一個表中存在匹配,就返回行

join方法可以支援以上四種類型,例如:

1 $Model = M(‘Artist‘);2 $Model3 ->join(‘think_work ON think_artist.id = think_work.artist_id‘)4 ->join(‘think_card ON think_artist.card_id = think_card.id‘)5 ->select();

 

join方法支援多次調用,但指定的資料表必須是全稱,但我們可以這樣來定義:

1 $Model2 ->join(‘__WORK__ ON __ARTIST__.id = __WORK__.artist_id‘)3 ->join(‘__CARD__ ON __ARTIST__.card_id = __CARD__.id‘)4 ->select();

 

__WORK__和 __CARD__在最終解析的時候會轉換為 think_work和 think_card

預設採用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成

1 $Model->join(‘RIGHT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘)->select();

或者使用:

1 $Model->join(‘__WORK__ ON __ARTIST__.id = __WORK__.artist_id‘,‘RIGHT‘)->select();

join方法的第二個參數支援的類型包括:INNER LEFT RIGHT FULL。

如果join方法的參數用數組的話,只能使用一次join方法,並且不能和字串方式混合使用。 例如:

1 join(array(‘ __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘,‘__CARD__ ON __ARTIST__.card_id = __CARD__.id‘))

使用數組方式的情況下,第二個參數無效。因此必須在字串中顯式定義join類型,例如:

1 join(array(‘ LEFT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘,‘RIGHT JOIN __CARD__ ON __ARTIST__.card_id = __CARD__.id‘))

 

thinkphp中join用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.