内部联接的查询生成器
问题描述:
我遇到了laravel查询生成器的问题。 我不明白什么是错的。内部联接的查询生成器
我有3个表
- salades
- 成分
- 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的新人。
答
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`)
什么问题?请描述。 –
1)你的sql查询工作正常吗? 2)你的laravel查询给出错误或错误的结果? 3)如果发生错误,那么错误是什么? –
似乎,你有'select'语句在连接之前是这样的问题,所以选择移动到' - > get()' –