比方说,我有以下型号:查询在关联表的外键
Customer(customer_id (PK), firstName, lastName, email)
Item(item_id (PK), name, description)
Orders(orders_id (PK), customer_id (FK), item_id (FK), promotion_id (FK)),
Promotion(promotion_id (PK), date, gift_id (FK))
Gift(gift_id (PK), name, description)
现在,让我们说,我有以下要求:
检索所有订单列表(没有分组)来自所有客户以及来自物品和礼物的名称列相关联。
困难的部分是,关联表的命令有一个外键列到一个到多个表(提升),轮到他有外键的礼物; 我有工作的下面的查询,但我弄清楚,应该有一个更优雅的方式来解决这个问题不是做了很多的连接是这样的:
select concat(c.firstName, ' ', c.lastName) as customerName,
i.name, g.name
from customer as c
left join orders as o on c.customer_id = o.customer_id
inner join item as i on o.item_id = i.item_id
inner join promotion as p on o.promotion_id = p.promotion_id
inner join gift as g on p.gift_id = g.gift_id;
我怎么能解决一个更优雅的查询办法? 在此先感谢!
我宁愿指定INNER JOIN,而不是刚刚加入,只是为了确认这是你真正想要的东西。 –