Rule Definition
ANSI syntax allow a clear separation between joins clause and the where clause restrictions. The ANSI notation makes the relations between the tables explicit, and saves you from coding equality tests for join conditions in the WHERE clause.
Thus the mix of both join notations makes the readability & maintainability of the code more complex. Moreover ANSI joins allows having optimization hints.
Remediation
Transform the queries including the two different notations with only the use of the ANSI syntax.
As a consequence reconsider the statement. For that check the business rule(s) to fully understand the objective of the statement in term of result set. Use ANSI JOIN syntax notation to rewrite the part of the code.
Violation Code Sample
Select T1.c5
From T1, T2
Where
T1.c1 = T2.c1
AND T1.c2 IN
(Select T3.c1 From T4 LEFT OUTER JOIN T3 on T3.c4=T4.c4)
Fixed Code Sample
Select T1.c5
From T1 JOIN T2
ON T1.c1=T2.c1
Where
T1.c2 IN
(Select T3.c1 From T4 LEFT OUTER JOIN T3 on T3.c4=T4.c4)
Reference
Oracle SQL Student Guide Volume 1
Related Technologies
Technical Criterion
Efficiency - SQL and Data Handling Performance
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.