2012-03-18 46 views
-2
create table A ( 
    cityID int, 
    cityname nvarchar(30), 
    primary key (cityID) 
) 

create table b (
    travelID int, 
    fromcityID int, 
    tocityID int, 
    primary key (travelID), 
    foreign key (fromcityID) references A (cityID), 
    foreign key (tocityID) references A (cityID) 
) 

insert into A values(1,'amman'); 
insert into A values(2,'Irbid'); 

insert into B values(1,1,1) 
insert into B values(2,1,2) 
insert into B values(3,2,1) 
insert into B values(4,2,2) 



select travelID, a.cityname,a.cityname from A, b where ???? 

idの代わりに都市名を表示するには、selectステートメントで何を書きますか?同じテーブルの2つの外部キーを持つSql selectステートメント

+2

どのデータベースを使用していますか?これは、クエリの構文に影響する可能性があります。 –

+5

私はジョインについて学ぶことをお勧めします。 – Corbin

答えて

3

に参加しています次のクエリを試してみてください。

SELECT a.cityname,c.cityname from B b 
JOIN A a ON b.fromcityID=a.cityID 
JOIN A c ON b.tocityID=c.cityID 

私は別名を使用していますクエリのあいまいさを避けるために...

+1

ありがとう:) :)) –

+1

あなたも答えを受け入れることができます.... –

0

以下を試してください。これはあなたが使用しているデータベースに応じて、構文はここ

select travelID, a1.cityname as city1, a2.cityname as city2 
from B 
inner join A a1 
on a1.cityID = B.fromcityID 
inner join A a2 
on a2.cityID = B.tocityID 

を変えることで、最大読むのに適した場所はhttp://www.w3schools.com/Sql/sql_join.asp

+0

あなたは大歓迎です! –

関連する問題