Sql 查询以匹配ID为的人员

Sql 查询以匹配ID为的人员,sql,join,Sql,Join,假设我们有两张桌子。 首先是一些订单:销售人员id、客户id、日期、价格。。。等 第二个是用于人员记录的人员:人员id、姓名、邮件。。。等 我需要选择包含客户和销售人员姓名的订单。 所以这行记录看起来像这样 order.order_id, order.date, name (for customer), name (for salesperson) 我不想显示人的ID,只想显示姓名 我不能两次加入PERSON表,所以,我的问题是如何做到这一点 是,您可以-加入person表两次,但别名不同 s

假设我们有两张桌子。 首先是一些订单:销售人员id、客户id、日期、价格。。。等 第二个是用于人员记录的人员:人员id、姓名、邮件。。。等

我需要选择包含客户和销售人员姓名的订单。 所以这行记录看起来像这样

order.order_id, order.date, name (for customer), name (for salesperson)
我不想显示人的ID,只想显示姓名


我不能两次加入PERSON表,所以,我的问题是如何做到这一点

是,您可以-加入
person
表两次,但别名不同

select o.order_id, o.date, 
       c.name as customer, 
       s.name as sales_person
from order_table o
left join person_table c on c.id = o.customer_id
left join person_table s on s.id = o.salesperson_id

你不能加入一次,然后做一个OR吗?比如…在p.id=o.customer\u id或p.id=o.salessorson\u id.上左连接person\u表p,或者类似的东西?这会降低性能吗?不,这是你做的方式。而且性能不应该成为问题,因为您使用主键加入。