我如何编写此查询。不想用Eloquent
How i write this Query. Want not use Eloquent
谁能告诉我查询?我使用 Laravel 5.7 和 mysql.
我的表格:
用户
- id
- 姓名
食谱
- id
- user_id
- 姓名
口味
- id
- 姓名
flavour_recipe(枢轴)
- flavour_id
- recipe_id
-一个用户可以拥有多个食谱(一对多)
-一个食谱可以有多种口味,一种口味可以出现在很多食谱中。(多对多)
我如何从给定用户那里获得所有食谱(带有他的口味)?
我想使用 Laravel Querybuilder,而不是 Eloquent。
我正在尝试这个,但它不起作用:
$allRecipesFromUserX = DB::table('flavour_recipe')
->join('flavours', 'flavours.id', '=', 'flavour_recipe.flavour_id')
->join('recipes', 'recipes.id', '=', 'flavour_recipe.recipe_id')
->join('users', 'users.id', '=', 'recipes.id')
->get();
如果我对你的问题的理解正确,你想要给定用户的所有食谱。
如果我看一下您的查询,您是从枢轴 table 开始的,我认为这不是正确的方法。此外,您永远不会声明 WHERE
子句以将其限制为特定用户。
循序渐进。您想为特定用户获取所有内容,所以让我们从用户 table
开始
$allRecipesForUser = DB::table('users')->where('id', $id)->get();
一个用户可以有多个食谱
$allRecipesForUser = DB::table('users')
->join('recipes', 'users.id', '=', 'recipes.user_id')
->where('id', $id)
->get();
一个食谱可以有多种口味,一种口味可以出现在很多食谱中
$allRecipesForUser = DB::table('users')
->join('recipes', 'users.id', '=', 'recipes.user_id')
->join('flavour_recipe', 'recipes.id', '=', 'flavour_recipe.recipe_id')
->join('flavours', 'flavours.id', '=', 'flavour_recipe.flavour_id')
->where('users.id', $id)
->get();
我希望这对你有用。如果这不是您需要的,请告诉我。
谁能告诉我查询?我使用 Laravel 5.7 和 mysql.
我的表格:
用户
- id
- 姓名
食谱
- id
- user_id
- 姓名
口味
- id
- 姓名
flavour_recipe(枢轴)
- flavour_id
- recipe_id
-一个用户可以拥有多个食谱(一对多)
-一个食谱可以有多种口味,一种口味可以出现在很多食谱中。(多对多)
我如何从给定用户那里获得所有食谱(带有他的口味)? 我想使用 Laravel Querybuilder,而不是 Eloquent。
我正在尝试这个,但它不起作用:
$allRecipesFromUserX = DB::table('flavour_recipe')
->join('flavours', 'flavours.id', '=', 'flavour_recipe.flavour_id')
->join('recipes', 'recipes.id', '=', 'flavour_recipe.recipe_id')
->join('users', 'users.id', '=', 'recipes.id')
->get();
如果我对你的问题的理解正确,你想要给定用户的所有食谱。
如果我看一下您的查询,您是从枢轴 table 开始的,我认为这不是正确的方法。此外,您永远不会声明 WHERE
子句以将其限制为特定用户。
循序渐进。您想为特定用户获取所有内容,所以让我们从用户 table
开始$allRecipesForUser = DB::table('users')->where('id', $id)->get();
一个用户可以有多个食谱
$allRecipesForUser = DB::table('users')
->join('recipes', 'users.id', '=', 'recipes.user_id')
->where('id', $id)
->get();
一个食谱可以有多种口味,一种口味可以出现在很多食谱中
$allRecipesForUser = DB::table('users')
->join('recipes', 'users.id', '=', 'recipes.user_id')
->join('flavour_recipe', 'recipes.id', '=', 'flavour_recipe.recipe_id')
->join('flavours', 'flavours.id', '=', 'flavour_recipe.flavour_id')
->where('users.id', $id)
->get();
我希望这对你有用。如果这不是您需要的,请告诉我。