0

当我尝试从多个表中选择数据时遇到了问题,我想知道是否有人可以帮助我。这些表是链接的,我试图只选择具有特定 id 的东西。我在 1 个表的查询中取得了成功,但是在 2 个表中它以我的方式踢了一个错误:

从配方获取数据的查询失败:Recipe_IDwhere 子句中的列不明确。

这是我的查询:

$query="SELECT * FROM Recipe, Ingredients_Needed WHERE Recipe_ID ='$chosen_id'";
4

4 回答 4

6

Recipe_ID 是否同时出现在 Recipe 和 Ingredients_Needed 中?如果确实如此,那么您需要执行以下操作:

SELECT * FROM Recipe, Ingredients_Needed WHERE Recipe.Recipe_ID = ....

作为旁注,使用正确的连接语法而不是隐式连接,即:

SELECT r.*, n.*
FROM Recipe r 
INNER JOIN Ingredients_Needed n ON n.Recipe_ID = r.Recipe_ID
WHERE r.Recipe_ID = ...

这将使其更加清晰,特别是如果您要加入具有不同条件的多个表等,因为您只需查看查询而不是猜测即可快速查看别名表。

于 2013-11-07T12:55:34.827 回答
0

指定表格:

WHERE table.Recipe_ID=
于 2013-11-07T12:55:47.530 回答
0

指定哪个表 receipe_id 引用:Recipe and/or Ingredients_Needed

SELECT * FROM Recipe r, Ingredients_Needed i WHERE r.Recipe_ID = x and r.Recipe_ID = x
于 2013-11-07T12:56:54.040 回答
0

只需用别名命名您的表并指定关系。您可能在两个表中具有相同的列名,或者在表Ingredients_NeededRecipe_ID中具有多个相同的条目。所以你的 SQL 将是:

SELECT * FROM Recipe R 
LEFT JOIN Ingredients_Needed I on R.ID=I.Recipe_ID 
WHERE R.ID = '$choden_id'

如果您在表中Recipe还没有ID但有Recipe_ID,只需更改R.IDR.Recipe_ID

于 2013-11-07T13:04:02.540 回答