从表中选择有限的数字,但所有连接都来自联接表

csbfibhn  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(311)

我正在从事一个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随机食谱,但与所有相应的产品。
项目的其余部分基于php
我该怎么做?

cgvd09ve

cgvd09ve1#

很遗憾,你学会了用带逗号的sql FROM 条款。你真的应该使用适当的,明确的,标准的 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;

这假设所有配方至少有一种产品。

相关问题