Выберите ограниченное число из таблицы, но все подключенные из объединенной таблицы - PullRequest
0 голосов
/ 03 июня 2018

Я работаю над проектом SQL и пытаюсь добиться следующего:

У меня есть таблица с именем Recipes, и таблица с именем Products, и одна с именем RecipeProducts.Все рецепты имеют свои собственные идентификаторы, и все продукты имеют свои собственные идентификаторы.В 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

Как я могу это сделать?

1 Ответ

0 голосов
/ 03 июня 2018

Очень печально, что вы научились использовать 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;

Это предполагаетчто во всех рецептах есть хотя бы один продукт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...