Нам нужно прийти к пониманию, что мы должны иметь дело с 2 разными таблицами, а не с 1, так как мы хотим иметь другой набор результатов из одной и той же таблицы.
Также нам нужны точные данные, а не дополнительные данные, поэтому мы выбираем Inner Join
Решение:
SELECT O.ID,AD1,A.CITY City1, o.AD2, b.City City2, STATE FROM ORDERS O
JOIN
ADDRS A
ON O.AD1=A.ID
JOIN ADDRS b
on O.AD2=b.ID
В случае, если вам нужны сценарии DDL и DML:
create table orders
(id int , ad1 int, ad2 int,state varchar(20))
insert into orders values
(2,7,1,'Payment')
create table addrs(id int,city varchar(20))
insert into addrs values(1,'NY')
insert into addrs values(2,'Paris')
insert into addrs values(4,'London')
insert into addrs values(7,'Berlin')
select * from orders
select * from addrs
Надеюсь, что этот ответ больше фокусируется на концепции, а не на Решении