Я делаю ошибку при определении значений с MySQL? Я запустил несколько версий одного и того же запроса, но каждая из них ничего не выводит - PullRequest
0 голосов
/ 12 апреля 2020

В настоящее время я пытаюсь выполнить упражнение SQL, в котором меня просят получить следующие атрибуты: «номер заказа», «номер товара» и «описание» для каждого заказа, который был размещен на дату 12 октября 2015 г. Я должен использовать три разные таблицы в этом упражнении, что означает, что я должен квалифицировать значения, чтобы получить MySQL, чтобы понять, что я прошу дать мне.

Таблицы следующие:

This is the item table.

Таблица Item относится к таблице Строка заказа из-за столбца "ITEM_NUM".

This is the Order line table.

Эта таблица относится к Таблица «Товар» и «Заказы», ​​поскольку в ней есть столбцы для «ORDER_NUM» и «ITEM_NUM».

This is the Orders table.

Эта таблица относится к таблице «Строка заказа» из-за столбца «ORDER_NUM».

Теперь вот проблема, я написал несколько версий следующего (я только выложил одну для удобства), и все они работают ...

this query

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

Выходные данные должны быть 51608, CD33, Wood Block Set (48 piece) для одного заказа и 51610, KL78, Pick Up Sticks для второго заказа. Это единственные приказы, поступившие 12 октября 2015 года.

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

1 Ответ

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

Следующее должно дать вам ожидаемый результат. Для лучшей практики всегда используйте join, когда вам приходится иметь дело с несколькими таблицами.

select
    ol.order_num,
    ol.item_num,
    i.description,
    i.category
from items i

join order_line ol
on i.item_num = ol.item_num

join orders o
on ol.order_num = o.order_num

where order_date = '2015/10/12'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...