我有一个查询的Sql加盟查询
SELECT foodjoint_id FROM provider_food_joints WHERE foodjoint_name='".$foodjoint_name."'";
现在我已经从其中还有一个foodjoint_id申请
SELECT * from menu_item where foodjoint_id = THOSE ID
另一个表中选择的所有信息我也来加入这两个查询
我有一个查询的Sql加盟查询
SELECT foodjoint_id FROM provider_food_joints WHERE foodjoint_name='".$foodjoint_name."'";
现在我已经从其中还有一个foodjoint_id申请
SELECT * from menu_item where foodjoint_id = THOSE ID
另一个表中选择的所有信息我也来加入这两个查询
可以使用IN子句中的条件:
SELECT * from menu_item where foodjoint_id IN (
SELECT foodjoint_id FROM provider_food_joints WHERE foodjoint_name='".$foodjoint_name."'");
SELECT i.menu_item
FROM menu_item i
JOIN provided_food_joints pfj
ON (pfj.id = i.foodjoin_id)
WHERE i.foodjoin_id = 5
这基本上是一个联接声明的工作原理。 查看this tutorial了解更多关于不同种类连接的信息
在你的情况下 - 如nadirs-JOIN
所建议的那样会更有用。
我认为他的意思是加入两个查询,而不是编写连接两个表的查询 –
因为他使用'foodjoin_id'并请求'menu_item表中的所有信息。所以我相信加入会更有用 – Tikkes
你可以在你的回答中加入这个,就像在这种情况下说JOIN比嵌套查询更有用 –
试试这个
SELECT * from menu_item where foodjoint_id in(SELECT foodjoint_id FROM provider_food_joints WHERE foodjoint_name='".$foodjoint_name."'")
SELECT * FROM menu_item WHERE foodjoint_id = (SELECT foodjoint_id FROM provider_food_joints WHERE foodjoint_name='".$foodjoint_name."'");
希望这是你的问?或具体的问题
那么,你的问题是什么? – Arkh
另外,您应该使用参数化查询而不是连接查询字符串中的变量。 – Arkh