我正在尝试从3个共享相同列名的表中选择数据,我不确定如何在查询中将这些表连接在一起。
到目前为止,这是我的声明:
SELECT
*
FROM
recipe, recipeingredients, recipesteps
WHERE
recipe.recipe_id AND recipeingredients.recipe_id AND recipesteps.recipe_id = :recipe
这似乎只是从数据库返回所有结果,而不仅仅是返回与每个配方ID匹配的结果。我不确定如何执行表联接。
任何帮助将不胜感激。
最佳答案
您需要正确提供JOIN条件,如下所示:
SELECT recipe.*, recipeingredients.*, recipesteps.*
FROM recipe
JOIN recipeingredients
USING (recipe_id)
JOIN recipesteps
USING (recipe_id)
WHERE recipesteps.recipe_id = :recipe
首先将
recipe
表与recipeingredients
联接在一起,其中两个表具有相同的recipe_id
行。然后使用recipesteps
表重复相同的过程。