Duplicate table aliasesSQL-L020Unused table aliasSQL-L025Undefined reference detectedSQL-L026Unqualified referencesSQL-L027Keyword used as an identifierSQL-L029Inconsistent capitalization detectedSQL-L014Inconsistent capitalisation of keywordsSQL-L010Implicit aliasing of table detectedSQL-L011Implicit aliasing of column detectedSQL-L012Column expression without alias detectedSQL-L013`DISTINCT` with parenthesisSQL-L015Ambiguous use of `DISTINCT`SQL-L021Trailing commas within `SELECT` clauseSQL-L038Unnecessary whitespace foundSQL-L039Inconsistent referencesSQL-L028Unnecessary trailing whitespaceSQL-L001Mixed Tabs and Spaces in single whitespaceSQL-L002Expected a single whitespace after `AS`SQL-L023Expected a single whitespace after `USING`SQL-L024Files must end with a trailing newlineSQL-L009Line too longSQL-L016Inconsistent function namesSQL-L030Indentation not consistent with previous linesSQL-L003Operators placed before the newlineSQL-L007Missing whitespace after a commaSQL-L008Function name not immediately followed by bracketSQL-L017Misaligned closing bracketSQL-L018Mixed comma style foundSQL-L019Missing blank lineSQL-L022Mixed Tab and Space indentationSQL-L004Multiple whitespaces around an operatorsSQL-L006Commas has whitespace directly before themSQL-L005Inconsistent capitalisation of boolean or null literalSQL-L040Misaligned `SELECT` modifierSQL-L041Table aliasing in `FROM` and `JOIN` operatorsSQL-L031Confusing use of `USING` operatorSQL-L032File start with ' ' or other whitespaceSQL-L050Unqualified use of `JOIN` clauseSQL-L051Subquery found in `JOIN`SQL-L042Unidiomatic `NULL` checksSQL-L049Unflattened `CASE` statements in `ELSE` clauseSQL-L058Multiple `SELECT` targets on same lineSQL-L036Ambiguous ordering directions for columns in `ORDER BY` clauseSQL-L037Unidiomatic use of `UNION` operatorSQL-L033Unidiomatic `SELECT` operand arrangementSQL-L034Redundant `ELSE NULL`SQL-L035Unnecessary `CASE` statementSQL-L043Unknown number of resulting columnsSQL-L044Unused Common Table Expression in querySQL-L045Use of non-ANSI spec syntax for `COUNT` all rowsSQL-L047Inconsistent styling around string literalsSQL-L048Improperly placed semi-colon(`;`) at statement endSQL-L052Use of brackets wrapping top-level codeSQL-L053Inconsistent column references in `GROUP BY`/`ORDER BY`SQL-L054Use `LEFT JOIN` instead of `RIGHT JOIN`SQL-L055
SQL logoSQL/
SQL-L055

Use `LEFT JOIN` instead of `RIGHT JOIN`SQL-L055

Minor severityMinor
Style categoryStyle

A RIGHT JOIN returns all rows from the right table and matching rows from the left table, while a LEFT JOIN returns all rows from the left table and matched rows from the right table.

Depending on the order and structure of your tables, using a RIGHT JOIN may be less efficient or clear than using a LEFT JOIN. We suggest switching to a LEFT JOIN if it detects that your query can be simplified or improved by doing so.

Bad practice

In this example, the two SUM functions don't have the same capitalisation.

SELECT
    foo.col1,
    bar.col2
FROM foo
RIGHT JOIN bar
    ON foo.bar_id = bar.id

Refactor and use LEFT JOIN instead.

SELECT
    foo.col1,
    bar.col2
FROM bar
LEFT JOIN foo
    ON foo.bar_id = bar.id