当我尝试从多个表中选择数据时,我遇到了一个问题,我想知道是否有人可以帮助我。这些表是链接的,我只想选择具有特定ID的内容。我已经成功查询了1个表,但有2个表,它以我的方式引发了错误:
查询从配方中获取数据失败:where子句中的列
Recipe_ID
不明确。
这是我的问题:
$query="SELECT * FROM Recipe, Ingredients_Needed WHERE Recipe_ID ='$chosen_id'";
答案 0 :(得分: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 = ...
这将使其更加清晰,特别是如果您要加入具有不同条件等的多个表,因为您只需通过查看查询而不是猜测就可以快速查看别名表。
答案 1 :(得分:0)
指定表格:
WHERE table.Recipe_ID=
答案 2 :(得分:0)
指定哪些表食谱参考:配方和/或需要的成分
答案 3 :(得分:0)
只需用别名命名表并指定关系。您可能在两个表或表Ingredients_Needed
列Recipe_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.ID
的{{1}}