简体   繁体   中英

SQL JOIN to get the compare two values/row from table “A” and the same row from table “B”

I have two tables with the following rows

Table A (transaction)

 Order       Seller      Customer    
 1           300         500

Table B (Persons)

PersonID          FullName        
300               Peter White
500               Scott Bold

I want a result like this

Order      Seller        Customer     FullName (Seller)      FullName  (customer)     
1          300           500          Peter White            Scott Bold

I've tried multiple things however which makes more sense is a join a table twice, however I'm getting:

Ambiguous column name

This is SQL Server 2019.

Basically I'm looking to retrieve info from the same table instead of creating additional tables. Is that possible? If yes, how do you do? Thank you in advance.

As @jarlh wrote in comment:

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;

Query with join will return the result as long as both seller and customer exist in persons table -- here it should as source table names transactions :).

I have another form of query it still join table B twice.

This is archaic syntax which I don't recommend but for beginner know the concept of JOIN:

select t.*,B.FullName as FullName  (customer)  from
(

select A.Order,A.Seller,A.Customer,B.FullName as FullName(Seller) 
    from A,B where A.Seller=B.PersionID
) t, B where t.Customer=B.PersionID

The proper way of JOIN:

select t.*,B.FullName as FullName  (customer)  from
(
select A.Order,A.Seller,A.Customer,B.FullName as FullName(Seller) 
        from A JOIN B ON A.Seller=B.PersionID
) t JOIN B ON t.Customer=B.PersionID

Hoping this can help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM