在thinkphp5中,join用於根據兩個或多個表中列之間的關係,從這些表中查詢數據,是連貫操作方法之一,返回的結果是一個模型對象,語法為「join ( 要關聯的表名以及別名[ 關聯條件[ 關聯類型]] )」。
本文操作環境:Windows10系統、ThinkPHP5版、Dell G3電腦。
thinkphp5中join的用法是什麼
JOIN方法也是連貫操作方法之一,用於根據兩個或多個表中的列之間的關係,從這些表中查詢數據。
說明
object join ( mixed join [, mixed $condition = null [, string $type = 'INNER']] )
參數
join:要關聯的(完整)表名以及別名,支援三種寫法:
寫法1:[ '完整表名或子查詢'=>'別名' ]
#寫法2:'完整表名別名'
-
寫法3:'不帶資料表前綴的表名'
condition:關聯條件。可以是字串或數組, 為數組時每一個元素都是關聯條件。
type:關聯類型。可以是:INNER、LEFT、RIGHT、FULL,不區分大小寫,預設為INNER。
傳回值:模型物件
join通常有下列幾種類型,不同類型的join運算會影響傳回的資料結果。
INNER JOIN: 等同於JOIN(預設的JOIN類型),如果表中有至少一個匹配,則返回行
LEFT JOIN : 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行
#範例如下:
Db::table('think_artist') ->alias('a') ->join('think_work w','a.id = w.artist_id') ->join('think_card c','a.card_id = c.id') ->select();
Db::table('think_artist') ->alias('a') ->join('__WORK__ w','a.id = w.artist_id') ->join('__CARD__ c','a.card_id = c.id') ->select();
$join = [ ['think_work w','a.id=w.artist_id'], ['think_card c','a.card_id=c.id'], ]; Db::table('think_user')->alias('a')->join($join)->select();
以上三種寫法的效果一樣,__WORK__和__CARD__在最終解析的時候會轉換為think_work和think_card。注意:'_表名_'這種方式中間的表名需要用大寫
如果不想使用別名,後面的條件就要使用表全名,可以使用下面這種方式
Db::table('think_user')->join('__WORK__','__ARTIST__.id = __WORK__.artist_id')->select();
預設採用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成
Db::table('think_user')->alias('a')->join('word w','a.id = w.artist_id','RIGHT')->select();
表名也可以是一個子查詢
$subsql = Db::table('think_work')->where(['status'=>1])->field('artist_id,count(id) count')->group('artist_id')->buildSql(); Db::table('think_user')->alias('a')->join([$subsql=> 'w'], 'a.artist_id = w.artist_id')->select();
因buildSql傳回的語句帶有() ,所以這裡不需要在兩端再加上()。
推薦學習:《PHP影片教學》
以上是thinkphp5中join的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了ThinkPHP的內置測試框架,突出了其關鍵功能(例如單元和集成測試),以及它如何通過早期的錯誤檢測和改進的代碼質量來增強應用程序可靠性。

本文討論了在無服務器體系結構中使用ThinkPHP的關鍵注意事項,專注於性能優化,無狀態設計和安全性。它突出了諸如成本效率和可擴展性之類的收益,但也應對挑戰

本文討論了在ThinkPHP微服務中實施服務發現和負載平衡,重點是設置,最佳實踐,集成方法和推薦工具。[159個字符]

ThinkPHP的IOC容器提供了高級功能,例如懶惰加載,上下文綁定和方法注入PHP App中有效依賴性管理的方法。Character計數:159

ThinkPHP具有輕巧的設計,MVC架構和可擴展性。它通過各種功能提高可擴展性,加快開發並提高安全性。

本文概述了使用ThinkPhp和RabbitMQ構建分佈式任務隊列系統,重點是安裝,配置,任務管理和可擴展性。關鍵問題包括確保高可用性,避免常見的陷阱,例如不當


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具

WebStorm Mac版
好用的JavaScript開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1
強大的PHP整合開發環境