MySQL запрос и реляционная таблица

0

У меня есть таблица под названием Item:

(id int primary_key, item_name varchar, packing_list int)

packing_list - это количество элементов в одной коробке, а другая таблица называется Invoice:

(id int primary_key, quantityOfCarton int).

quantityOfCarton представляет общее количество картонных коробок для предмета.

Предположим, что у меня эти значения:

Пункт (1, Нутелла, 3); //id, item_name, packing_list

Счет-фактура (1, 2)//id, quantityOfCarton

Итак, у меня есть две картонные коробки Nutella, и в каждой коробке есть 3 банки Nutella.

Я хочу рассчитать общее количество предметов (банок Nutella), а формула следующая:

totalItems = quantityOfCarton * packing_list; // 3*2= 6 Nutella jars.

Моя проблема связана с запросом, который будет извлекать данные, необходимые для формулы, и как таблицы должны быть связаны?

Я хочу что-то вроде этого:

SELECT item_name, packing_list 
FROM Item and SELECT quantityOfCarton from Invoice where item_name= "nutella ";

Большое спасибо!

Теги:
database
join

1 ответ

0
Лучший ответ

Не знаете, почему вы должны выбрать item_name, когда вы указываете, where item_name=.

В любом случае, похоже, что вы хотите:

select quantityOfCarton * packing_list
from Item
join Invoice on Item.id=Invoice.id
where Item.item_name='nutella';

Если вы часто просматриваете предметы по имени, вы, вероятно, должны иметь индекс для item_name.

  • 0
    да, извини, я имел в виду, где id = 1; так как эти таблицы должны быть связаны в ключах? должен ли id элемента быть внешним ключом в таблице счетов?
  • 0
    @AlyAlAmeen, чтобы запрос работал, он просто должен быть индексом, и он уже является первичным ключом. но наличие Invoice.id в качестве идентификатора элемента кажется немного странным; Вы когда-нибудь имели бы счет без пункта или элемент без счета? или более одного счета за товар?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню