2016-11-18 8 views
0

SQLでサブクエリを使用せずにこのクエリを書き換えるにはどうすればよいですか? 私はこれを行う方法にあまり慣れていませんが、私はそれが "参加"を使って完了したと思います。サブクエリなしでSQLクエリを書き換えるにはどうすればよいですか?

SELECT title 
FROM Movies Old 
Where year < ANY 
    (SELECT year 
    FROM Movies 
    WHERE title = Old. title 
); 

(注:これは関係の映画(タイトル、年、長さ、ジャンル、studioName、producerC番号)から来ている)文字通り使用して現在のクエリを書き直す

+0

@philipxyこのクエリは、複数回出現するムービータイトルを検索します。それが私が望むものです。そして私はサブクエリなしでそれを書き直したい。 –

+0

これは、ムービーに表示されるときの不明瞭な機能であるタイトルの行を#回返します。タイトルが映画に複数回出現する場合は、別々の年があると仮定していない限り、与えられたタイトルが現れる年数を引いた行を返します。しかし、「複数回出現する映画のタイトルを見つける」というのは、それが不明確である。さらに、通常DISTINCTのタイトルを意味すると解釈されます。ですから、同等のサブクエリフリーのクエリを与えることができます。しかし、それは本当にあなたが欲しいものですか、あなたを助けることを求めるのは合理的ですか? – philipxy

答えて

2

は、あなたがこれを試すことができます結合します

SELECT title 
FROM Movies 
GROUP BY title 
HAVING COUNT(*) > 1 
SELECT m1.title 
FROM Movies m1 
INNER JOIN Movies m2 
    ON m1.title = m2.title AND 
     m1.year < m2.year 

しかし、あなたが本当にしたいすべてが複数回表示される映画のタイトルを見つけることであるならば、そしてちょうどGROUP BYクエリを使用しない

関連する問題