У меня трудные времена с объединениями в MySQL. У меня 4 таблицы, все связаны друг с другом.Несколько таблиц соединяются с несколькими внешними ключами MySQL
**Order**: order_id, shop_id(fk), date, day, order_price, PK_order
**Scan** : scan_id(PK), item_id, order_id(FK), stack, stack_price, price, note
**Item** : item_id(PK), item_name
**Shop** : shop_id(PK), shop_name
Я хочу построить запрос, который выводит что-то вроде этого:
date|day|shop_name|item_name|stack|stack_price|price|note
Мой запрос выглядит следующим образом:
Select
order.date, order.day, shop.shop_name, item.item_name, scan.stack, scan.stack_price,
scan.price, scan.note
From
order, scan, shop, item
Join
shop on order.shop_id = shop.shop_id
Join
item on scan.item_id = item.item_id
Я получаю ошибку 1054: Неизвестный столбец ... в 'on clause' или другая ошибка псевдонима.
Однако, когда я выбираю только один столбец из одной таблицы, я заставляю его работать. Этот запрос работает:
select item.item_name from scan inner join item on scan.item_id = item.item_id
Я думаю, что есть какая-то проблема с выбором из нескольких таблиц ... Любой человек может мне помочь? Каждый ответ приветствуется. Благодаря
Слово 'order' особенного в MySQL, так что это хорошая идея поставить галочки вокруг него, если вы не делаете в' ORDER BY '. – wogsland
, несмотря на то, что ответ Vr46 верен - я думаю - переосмыслите имя «заказ» как имя таблицы, как упомянуто wogsland - «порядок» вызовет проблемы в любом sql, вы не будете называть таблицу «где» или «выбирать», ? – halfbit
На самом деле я не использую это слово в своем проекте, я просто перевел его на английский с моего родного языка, чтобы вы могли понять :-) – JosefPP