where子句不明确

Web*_*azy 0 mysql sql

当我尝试从多个表中选择数据时,我遇到了一个问题,我想知道是否有人可以帮助我.这些表是链接的,我只想选择具有特定ID的内容.我已经成功使用1个表但有2个表的查询以我的方式引发错误:

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

这是我的查询:

$query="SELECT * FROM Recipe, Ingredients_Needed WHERE Recipe_ID ='$chosen_id'";
Run Code Online (Sandbox Code Playgroud)

Ric*_*Ric 6

Recipe_ID是否同时出现在Recipe和Ingredients_Needed中?如果它确实那么你需要做这样的事情:

SELECT * FROM Recipe, Ingredients_Needed WHERE Recipe.Recipe_ID = ....
Run Code Online (Sandbox Code Playgroud)

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

SELECT r.*, n.*
FROM Recipe r 
INNER JOIN Ingredients_Needed n ON n.Recipe_ID = r.Recipe_ID
WHERE r.Recipe_ID = ...
Run Code Online (Sandbox Code Playgroud)

这将使其更加清晰,特别是如果您正在加入具有不同条件等的多个表,因为您可以通过查看查询而不是猜测来快速查看别名表.