У меня есть три таблицы item
, store
и stock_movement
. Движение запаса имеет поля id
, item_id
, store_id
и quantity
. Я хотел бы создать представление, показывающее сумму количеств каждого элемента в каждом магазине. Если в магазине нет записи stock_movement
, количество должно быть равно нулю.Код ошибки 1054 неизвестная колонка на перекрестном соединении
я придумал следующий запрос:
SELECT item.*, store.id, SUM(s.quantity) AS quantity
FROM item, store
LEFT JOIN stock_movement s ON s.item_id = item.id AND store.id = s.store_id
GROUP BY store.id, item.id;
Я получаю следующее сообщение об ошибке:
Error Code: 1054 Unknown column 'item.id' in 'on clause'
Если переключить запрос использовать FROM store, item
неизвестные изменения столбцов:
Error Code: 1054 Unknown column 'store.id' in 'on clause'
This answer to use INNER JOIN
не будет работать для меня, так как есть некоторые предметы и сто res без соответствующих stock_movement
записей, в результате чего отсутствует несколько строк.
Итак, есть ли способ сделать это кросс-соединение?
Вы уже смешиваете неявные внутренние соединения и явное левое соединение, используя список таблиц, разделенных запятыми, в предложении 'FROM'. Вероятно, все, что вам нужно, это «LEFT JOIN» между 'stock_movement' и' store', но можете ли вы разместить небольшой образец строк из каждой таблицы вместе с образцом того, что вы ожидаете от вывода запроса? –
Вы пробовали накладывать элементы и хранить таблицы? – Zoldren
@ Zoldren да. Такая же ошибка. – topher