我在MySQL中加入时遇到了困难。我有4张桌子,都连在一起。
**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:未知列...在条款'或其他'别名'错误。
然而,当我从一个表中只选择一列时,我就可以了。 此查询有效:
select item.item_name from scan inner join item on scan.item_id = item.item_id
我认为从多个表中选择有一些问题......任何人都可以帮助我吗?每个回复都表示赞赏。感谢
答案 0 :(得分:1)
您已将以逗号分隔的连接和内部连接组合在一起,您不必多次使用同一个表。
如果没有错,这就是你要找的东西
SELECT `order`.`DATE`,
`order`.`day`,
shop.shop_name,
item.item_name,
scan.stack,
scan.stack_price,
scan.price,
scan.note
FROM `order`
join scan
ON `order`.order_id = scan.order_id
join shop
ON `order`.shop_id = shop.shop_id
join item
ON scan.item_id = item.item_id