我正在研究一个SQL项目,我正在努力实现以下目标:
我有一个名为Recipes的表,一个名为Products的表,还有一个名为RecipeProducts的表。所有食谱都有自己的ID,所有产品都有自己的ID。在Recipeproducts中,存储了recipeID和ProductID以加入它们。
我已经有了以下查询:
select
recipeproducts.recipeID,
recipes.recipeName,
recipeproducts.productID,
products.productName,
products.quantity AS perverpakking,
recipeproducts.productQuantity AS nodig
FROM
recipeproducts,
recipes,
products
WHERE
recipeproducts.recipeID = recipes.recipeID AND
recipeproducts.productID = products.productID
我想获得(示例编号)3 RANDOM食谱,但是所有相应的产品。
项目的其余部分基于PHP
我该怎么做?
答案 0 :(得分:0)
在FROM
子句中学习使用带逗号的SQL是非常可悲的。您确实应该使用正确的,明确的标准 JOIN
语法。
要做你想做的事,请在加入之前对食谱进行抽样:
select r.recipeID, r.recipeName, p.productID, p.productName,
p.quantity AS perverpakking, rp.productQuantity AS nodig
FROM (SELECT r.*
FROM recipes r
ORDER BY rand()
LIMIT 3
) r JOIN
recipeproducts rp
ON rp.recipeID = r.recipeID JOIN
products p
ON rp.productID = p.productID;
这假设所有食谱都至少有一种产品。