Сложный запрос SQL для получения данных серийного номера из магазина - PullRequest
0 голосов
/ 07 апреля 2020

Доброе утро всем, несколько дней go Я установил на своем компьютере экземпляр магазина 5 для работы. В магазине есть возможность продавать продукты ESD и присваивать каждому серийному номеру уникальный серийный номер, который мне теперь нужно проверить из внешней программы. К сожалению, магазинная техника разбивает все на несколько таблиц, что делает его довольно сложным для понимания.

Что у меня есть: - адрес электронной почты пользователя - лицензия пользователя

Что я хочу: название продукта, который лицензируется на адрес электронной почты с данной лицензией. Серийный номер статьи сохраняется в "a_articles_esd_serials" как "serialnumber". Имя статьи хранится в «s_articles» как «имя».

Что я уже пробовал: я пытался создать запрос SQL, чтобы получить серийные номера, соответствующие продукту. Просто чтобы создать себе базу. Но это уже терпит неудачу с «s_articles.id не определен», который невозможен, так как он определенно существует и, конечно, устанавливается в автозаполнение в phpmyadmin.

SELECT arts.name
FROM s_articles arts
JOIN s_articles_esd arts_esd ON arts_esd.articleID = s_articles.id
JOIN s_order_esd order_esd ON order_esd.esdID = arts_esd.id
JOIN s_articles_esd_serials serials ON serials.esdID = order_esd.esdID

Информация о таблицах: я сделал этот конструктор чтобы вы могли понять, как выглядят таблицы.

Дизайнерское представление данных таблиц

Как уже было сказано, магазинная техника разделяется на несколько вещей.

Входные данные:

{
"mail": "example@example.com",
"licence": "ABCDEFGH"
}

Ожидаемый результат:

{[
"mail": "example@example.com",
"licence": "ABCDEFGH",
"product": "Awesome product name" //THIS WOULD BE NULL IF NOTHING FOUND
]}

Может кто-нибудь помочь мне в этом? Было бы неплохо, так как я каким-то образом заблокирован в моей голове.

Привет!

1 Ответ

0 голосов
/ 07 апреля 2020

Я смог помочь себе, используя несколько подзапросов.

SELECT arts.name FROM s_articles arts WHERE arts.id = (SELECT arts_esd.articleID FROM s_articles_esd arts_esd WHERE arts_esd.id = (SELECT oesd.esdID FROM s_order_esd oesd WHERE oesd.serialID = (SELECT serials.id FROM s_articles_esd_serials serials WHERE serials.serialnumber = "ABCDEFGH") AND oesd.userID = (SELECT usr.id FROM s_user usr WHERE email = 'example@example.com')))
...