표에 표시되지 기록 선택 방법 : 영화내가 다른 테이블
mID title year director
101 Gone with the Wind 1939 Victor Fleming
102 Star Wars 1977 George Lucas
103 The Sound of Music 1965 Robert Wise
104 E.T. 1982 Steven Spielberg
105 Titanic 1997 James Cameron
106 Snow White 1937 <null>
107 Avatar 2009 James Cameron
108 Raiders of the Lost Ark 1981 Steven Spielberg
테이블 : 나는 아직 평가되지 않은 영화를 가져올 필요가
rID mID stars ratingDate
201 101 2 2011-01-22
201 101 4 2011-01-27
202 106 4 <null>
203 103 2 2011-01-20
203 108 4 2011-01-12
203 108 2 2011-01-30
204 101 3 2011-01-09
205 103 3 2011-01-27
205 104 2 2011-01-22
205 108 4 <null>
206 107 3 2011-01-15
206 106 5 2011-01-19
207 107 5 2011-01-20
208 104 3 2011-01-02
평가합니다. 이 경우 타이타닉 (mID 105)과 스타 워즈 (mID 102)는 등급 테이블에서 절대 등급을받지 못합니다.
내가 영화에서 서로 다른 movie.title을 선택그것을 파악, 평가 곳에 rating.mid! = 영화에서 선택 별개의 movie.title 제외 movie.mid, 등급 곳 rating.mid = movie.mid
그러나 더 쉽게 (더 쉽고/깔끔하게) 할 수 있다고 생각합니다.
힌트 : - 그들은 단지 명시 적으로 JOIN 구문을 정의하는 SQL ANSI 표준의 일부이며, 암시 적 조인 안티 패턴하지 않습니다 ... 왼쪽은 RATINGDATE가 NULL' WHERE를'조인 ... – MicSim
@HLGEM는 동의 . Codd 이후의 암시 적 조인이 있었고 ANSI 표준보다 훨씬 앞선 것으로 명시 적 조인보다 성능 경로에 별다른 차이가 없다는 점을 감안할 때 이는 양식적인 취향입니다. –
아니요 문체를 선호하지 않습니다. Implict 조인은 문제를 일으 킵니다. 우발적 인 corss 조인을 만들 수 있습니다. 내부 조인과 외부 조인의 comniation을 사용하면 나쁜 결과를 얻을 수 있고 유지하기가 더 어려워집니다. 문서화 된 반 패턴입니다. 그 (것)들과 많은 쓸데없는 것들을 사용함에 이점이 없습니다. 아마도 당신은 읽어야합니다 : http : //www.amazon.com/SQL-Antipatterns-Programming-Programmers-ebook/dp/B00A376BB2/ref=sr_1_1? s = digital-text & ie = UTF8 & qid = 1377180059 & sr = 1-1 & keywords = sql + antipatterns – HLGEM