内部联接的查询构建器

时间:2017-07-19 10:09:50

标签: laravel eloquent

我的laravel查询构建器出了问题。 我不明白什么是错的。

我有3张桌子

  1. salades
  2. 成分
  3. salade_ingredient (n:n关系的数据透视)
  4. 我想列出成分的名称,即列 ingredients.nom ,用于salade id 22

    sql query(work):

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

    laravel query(错误):

      $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的新人。

1 个答案:

答案 0 :(得分: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`)