sql - SQL JOIN 以比较表“A”中的两个值/行和表“B”中的同一行
问题描述
我有两个包含以下行的表
表 A(事务)
Order Seller Customer
1 300 500
表 B(人)
PersonID FullName
300 Peter White
500 Scott Bold
我想要这样的结果
Order Seller Customer FullName (Seller) FullName (customer)
1 300 500 Peter White Scott Bold
我尝试了多种方法,但是更有意义的是两次加入表,但是我得到了:
不明确的列名
这是 SQL Server 2019。
基本上我希望从同一个表中检索信息,而不是创建其他表。那可能吗?如果是,你会怎么做?先感谢您。
解决方案
正如@jarlh 在评论中所写:
select t.order, t.seller, t.customer, sel.fullname, cust.fullname
from transaction t
join persons sel -- sel is an alias to persons table
on sel.personid = t.seller
join persons cust
on cust.personid = t.customer;
join
只要卖家和客户都存在于表中,查询就会返回结果persons
——这里它应该作为源表名transactions
:)。
推荐阅读
- sql - 如何使用 ACCEPT 在 ORACLE 中获取用户输入?
- jcr - JCR 用户登录失败
- javascript - 开玩笑错误''TypeError:无法读取未定义的属性'preventDefault'“
- r - 嵌套 for 循环转换为 lapply
- plugins - 查看插件无法正常工作
- sql - 使用 rails 活动记录方法执行原始 sql 查询
- c# - 无法从 'System.Collections.Generic.ICollection 转换
'到'x' - scala - 处理布尔的期货
- ios - 在 UITableViewCell 中使用扩展创建网点的行为很奇怪
- javascript - 即使启用 Javascript 后 WKWebView 也无法正常工作 - Swift