聯表查詢
聯表要求至少得有2張表(除了自己連接自己),并且還是存在關系的兩張表,
例如:可以建立2張表:文章表、作者表,
文章表(article):
Id 主鍵
Article_name 文章名稱
Author_id 作者(作者id)
作者表(author):
Id 主鍵
Author_name 作者名稱
①創建遷移檔案
#php artisan make:migration create_article_table
#php artisan make:migration create_author_table

②相繼撰寫2個遷移檔案的代碼
文章表的遷移代碼:


作者表的遷移代碼:


③執行生成資料表的遷移檔案
#php artisan migrate


④模擬資料(通過填充器來實作)
a. 創建填充器檔案(可以將多個資料表的寫入操作寫在一起)
#php artisan make:seeder ArticleAndAuthorTableSeeder

b. 撰寫資料模擬的代碼


c. 需要執行填充器檔案
#php artisan db:seed --class=ArticleTableSeeder
#php artisan db:seed --class=AuthorTableSeeder

資料表的結果:


案例:要求查詢資料表(文章表、作者表),查詢出文章的資訊包含了作者名稱,
例如:查詢id為1的文章,其結果應為1 我有很多小花你要嗎 人民網
分析:
資料來源:文章表、作者表
表1:文章表 t1 主表(跟在from關鍵詞后面的表)
表2:作者表 t2 從表(跟在join關鍵詞后面的表)
關聯條件:t1.author_id = t2.id
聯表方式:左外連接
原始的sql陳述句:
select t1.id,t1.article_name,t2.author_name from article as t1 left
join author as t2 on t1.author_id = t2.id;
將上述的sql陳述句改成鏈式操作:
語法:DB門面/模型 -> join聯表方式名稱(關聯的表名,表1的欄位,運算子,表2的欄位)

a. 創建需要的路由

b. 創建test18方法,實作將sql陳述句改寫成鏈式操作實作剛才的案例效果

顯示結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1506.html
標籤:其他
