Как получить данные, когда у меня есть следующий тип данных в базе данных? - PullRequest
0 голосов
/ 11 июня 2019

Я изучаю MySQL (для начинающих). И я пытаюсь решить один вопрос, в котором я застрял. Database

Из вышеуказанной базы данных ORDER_TABLE я пытаюсь извлечь ORDER_ID, когда пользователь вводит различные фрукты, стационарные предметы и напитки. Наименование соответствующих предметов (Apple, Book, Tea) будет предоставлено нам. Нам нужно проверить, содержит ли база данных элементы, предоставленные пользователем, и, если существует, мы должны вернуть ORDER_ID этого, если не сообщение «Нет такого заказа еще».

Как проверить и извлечь его? Нужно ли здесь использовать цикл? Если да, предположим, есть количество предметов, предоставленных нам. Но как использовать цикл здесь? Я полностью сбит с толку. Учебники для начинающих не учат такого рода вопрос и его решение.

Или мы можем разбить эти данные на несколько таблиц и затем получить ORDER_ID ??

1 Ответ

1 голос
/ 11 июня 2019

Один простой подход использует агрегирование.Например, чтобы найти все заказы, которые имеют (Apple, Book, Tea), мы можем попробовать:

SELECT Order_ID
FROM yourTable
GROUP BY Order_ID
HAVING
    COUNT(CASE WHEN Fruits = 'Apple' THEN 1 END) > 0 AND
    COUNT(CASE WHEN Stationary = 'Book' THEN 1 END) > 0 AND
    COUNT(CASE WHEN Drinks = 'Teat' THEN 1 END) > 0;
...