您好,登錄后才能下訂單哦!
小編給大家分享一下ThinkPHP中join關聯查詢如何不使用默認的表前綴,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、執行速度快。2、具有很好的開放性和可擴展性。3、PHP支持多種主流與非主流的數據庫。4、面向對象編程:PHP提供了類和對象。5、版本更新速度快。6、具有豐富的功能。7、可伸縮性。8、功能全面,包括圖形處理、編碼與解碼、壓縮文件處理、xml解析等。
上述join函數中需要三個參數,分別是:
要關聯的(完整)表名以及別名,支持三種寫法:
寫法1:[ '完整表名或者子查詢'=>'別名' ] 寫法2:'完整表名 別名' 寫法3:'不帶數據表前綴的表名'
關聯條件,可以為字符串或數組, 為數組時每一個元素都是一個關聯條件。
關聯類型,可以為: INNER、LEFT、RIGHT、FULL,不區分大小寫,默認為INNER。
一般情況下,都是一個數據庫中查詢的,這樣的情況下默認使用的都是相同的表前綴,比如(shop_),所以在使用數據庫模型關聯查詢時往往都是這樣寫的:
Order::alias('o') ->join('user u', 'o.user_id = u.id') ->select();
在以上代碼中,因為是使用模型查詢,所以默認都會加上表前綴,兩張表的完整表名就是shop_order和shop_user,而關聯類型則默認為INNER關聯。
但這時如果關聯了一張不同前綴的表(比如:pay_record),上述的查詢語句顯然就行不通了,這時就需要在關聯語句處稍作修改,修改后的代碼如下:
Order::alias('o') ->join(['pay_record' => 'r'], 'o.pay_id = r.id') ->select();
這樣便能使用模型關聯不同前綴的表進行查詢了。
上述的方式其實也就是把join函數中的join參數由字符串修改為數組;ThinkPHP是一個很優秀的開發框架,上述的關聯方式也只是其中一種。
以上是“ThinkPHP中join關聯查詢如何不使用默認的表前綴”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。