2017-07-19 85 views
0

我遇到了laravel查詢生成器的問題。 我不明白什麼是錯的。內部聯接的查詢生成器

我有3個表

  1. salades
  2. 成分
  3. salade_ingredient(支點爲N:N的關係)

我想列出名稱成分即列i ngredients.nom for salade 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`)