2017-07-19 13 views
0

laravelクエリビルダに問題があります。 何が間違っているのか分かりません。クエリバインダーと内部結合

I 3つのテーブル

  1. salades
  2. 成分
  3. salade_ingredient(nのピボット:Nの関係)は、私は名前をリストしたい

をの成分すなわちカラムi ngredients.nomサラダID

SQLクエリ(作業):

select distinct ingredients.nom 
from ingredients, salade_ingredient,salades 
where salade_ingredient.salade_id = 22 
and ingredients.id = salade_ingredient.ingredient_id 

laravelクエリ(エラー):

$Ingredients = DB::table('ingredients') 
      ->select('ingredients.nom') 
      ->join('salade_ingredient', 'salade_id', '=','22') 
      ->join('ingredients', 'ingredients.id', '=', 'salade_ingredient.ingredient_id') 
      ->join('salades','salade.id','=','salade_ingredient.salade_id') 
      ->get()->distinct(); 

はあなたが私助けてくださいことができますか?私はlaravelで新しいです。

+0

何が問題ですか?記述してください。 –

+1

1)あなたのSQLクエリは正常に動作していますか? 2)あなたのlaravelクエリーがエラーまたは間違った結果を出しますか? 3)エラーが発生した場合、エラーは何ですか? –

+0

結合が問題になる前に 'select'ステートメントがあるので、その選択を' - > get() 'の直前に移動してください。 –

答えて

0
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'ingredients' (SQL: select `ingredients`.`nom` from `ingredients` inner join `salade_ingredient` on `salade_id` = `$Salade["id"]` inner join `ingredients` on `ingredients`.`id` = `salade_ingredient`.`ingredient_id` inner join `salades` on `salade`.`id` = `salade_ingredient`.`salade`.`id`)