2023-05-03 11:06:20 +02:00
== Why is this an issue?
2020-06-30 12:47:33 +02:00
When you need access to data from multiple tables, it is more efficient, effective, and understandable to use pre-built views than to select the data from a large number of tables - effectively creating in-memory views - at runtime.
2023-05-03 11:06:20 +02:00
=== Noncompliant code example
2020-06-30 12:47:33 +02:00
With a maximum number of 3 joined tables:
2020-06-30 14:49:38 +02:00
2022-02-04 17:28:24 +01:00
[source,text]
2020-06-30 12:47:33 +02:00
----
SELECT PERSONS.NAME, COUNTRIES.NAME, GENRES.NAME, PROFESSIONS.NAME
FROM PERSONS
INNER JOIN COUNTRIES ON COUNTRIES.ID = PERSON.COUNTRY_ID
INNER JOIN GENRES ON GENRES.ID = PERSONS.GENRE_ID
INNER JOIN PROFESSIONS ON PROFESSIONS.ID = PERSONS.PROFESSIONS_ID -- Noncompliant; this is table #4
WHERE COUNTRIES.CODE = 'US'
SELECT PERSONS.NAME, COUNTRIES.NAME, GENRES.NAME, PROFESSIONS.NAME
FROM PERSONS, COUNTRIES, GENRES, PROFESSIONS -- Noncompliant
WHERE COUNTRIES.CODE = 'US' AND COUNTRIES.ID = PERSON.COUNTRY_ID AND GENRES.ID = PERSONS.GENRE_ID AND PROFESSIONS.ID = PERSONS.PROFESSIONS_ID
----