我有一个订单表,其中包含3个不同的用户ID(一个放置订单请求,一个订购订单,另一个收到订单)和一个用户表。我想在一个选择查询中从用户表中获取所有3个不同的名字和姓氏。你能帮帮我吗?
答案 0 :(得分:0)
这是一个直接的自连接从一个表到另一个表(在本例中为3次)的多向连接的情况,这需要使用表别名。在单个查询中使用表别名来表示单个表的多个外观,这是SQL世界中的一个成文。
SELECT u1.firstname, u1.lastname,
u2.firstname, u2.lastname,
u3.firstname, u3.lastname,
o.order_num, o.placed_order_req, o.ordered_order, o.received_order
FROM Orders AS o
JOIN Users AS u1 ON o.placed_order_req = u1.user_id
JOIN Users AS u2 ON o.ordered_order_req = u2.user_id
JOIN Users AS u3 ON o.received_order_req = u3.user_id;