2016-04-22 14 views
1
select m.m_name, p.place_town 
from musician m 
inner join place p 
    on m.born_in = p.place_no 
where m.born_in = (select m.born_in from musician m where m.m_name = 'James First') and 
    m.m_name != 'James First' 
+0

サブクエリは相関関係がないと思われるので、思ったよりも悪くないかもしれません。 –

+0

まだ、これを排除するために自己参加することは可能でしょうか? –

答えて

0

あなたはでサブクエリを置き換えることができます自己結合:ミュージシャンmから

select m.m_name, p.place_town 
from musician m 
inner join place p 
    on m.born_in = p.place_no 
inner join 
(
    select m.born_in 
    from musician m 
    where m.m_name = 'James First' 
) t 
    on m.born_in = t.place_no 
where m.m_name != 'James First' 
+0

ありがとうございました。あなたの質問を少し変更すれば、私は正しい答えを得られます。ミュージシャンmから、p.place_town をm.m_nameを選択 内側m.born_inに場所P = p.place_noに参加 内側参加ミュージシャンM から( 選択m.born_inここm.m_name = 'ジェームス最初の' )として、 をt.born_in = p.place_no m.m_name!= 'James First' –

0
select m.m_name, p.place_town 

m.born_in = インナー参加 ( 選択p.place_no上の場所のP に参加インナーm.born_in ミュージシャンからm m.m_name = 'James First' )として on t.born_in = p.place_no whe re m.m_name!= 'James First'

関連する問題