# SQL Join ###### tags:`想知道嗎`, `SQL` --- <!-- ![](https://i.imgur.com/x5KhJ0q.jpg =300x) --> Sarah 🐘Vegelephant 🐘 蔬食-環保-玩小孩 past: Python now : PHP fb id:100001561720922 --- ### 併 * WHY * WHAT * HOW --- ## WHY 1. 班上國文80分以上,但數學不及格的同學有哪些 2. Shiva 的魔法商店中,使用者 Sarah 沒有買過的商品有哪些 --- ## WHAT ![](https://i.imgur.com/ZNsDRog.png) --- ## Left join 會先取得所有的 A, 那如果沒有相對應的 B ,就直接全部塞 null , 他的邏輯就是抓取,『所有的課(A)加上修課學生的資料(B)』 --- [參考](https://dotblogs.com.tw/brooke/2015/03/15/150726) --- ## HOW ``` $magics = ShopMagic::where(['shop_id' => $id]) ->join('magics','shop_magics.magic_id', '=', 'magics.id') ->leftjoin('user_magics', function($join){ $join->where('user_magics.user_id','=', Auth::user()->id) ->on('shop_magics.magic_id', '=', 'user_magics.magic_id'); }) ->select('magics.id','magics.name','magics.price','magics.level','user_magics.magic_id') ->get(); ``` ---
{"metaMigratedAt":"2023-06-15T01:50:00.642Z","metaMigratedFrom":"YAML","title":"SQL Join","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"0f4b2677-c241-45c8-bc6c-45fe527d2921\",\"add\":1771,\"del\":762}]"}
    711 views