Oracle: Creating Joins with the USING Clause
How to create a join with the USING clause in Oracle?
- Use the USING clause to specify the columns for the equijoin where several columns have the same names but not same data types.
- Use the USING clause to match only one column when more than one column matches.
- The NATURAL JOIN and USING clauses are mutually exclusive.
Syntax:
SELECT table1.column, table2.column FROM table1 JOIN table2 USING (join_column1, join_column2…);
Explanation:
- table1, table2 are the name of the tables participating in joining.
- The natural join syntax contains the NATURAL keyword, the JOIN…USING syntax does not.
- An error occurs if the NATURAL and USING keywords occur in the same join clause.
- The JOIN…USING clause allows one or more equijoin columns to specify in brackets after the USING keyword.
Example: Creating Joins with the USING clause in Oracle
In this example, the LOCATIONS table is joined to the COUNTRY table by the country_id column (only column of the same name in both tables).
Sample table: locations
Sample table: countries
SQL> SELECT location_id, postal_code, country_name
2 FROM locations
3 JOIN countries
4 USING (country_id);
Sample Output:
POSTAL_CODE CITY REGION_ID COUNTRY_NAME ------------ ------------------------------ ---------- ------------------------- 00989 Roma 1 Italy 10934 Venice 1 Italy 1689 Tokyo 3 Japan 6823 Hiroshima 3 Japan 26192 Southlake 2 United States of America 99236 South San Francisco 2 United States of America 50090 South Brunswick 2 United States of America 98199 Seattle 2 United States of America M5V 2L7 Toronto 2 Canada YSW 9T2 Whitehorse 2 Canada 190518 Beijing 3 China 490231 Bombay 3 India 2901 Sydney 3 Australia 540198 Singapore 3 Singapore London 1 United Kingdom OX9 9ZB Oxford 1 United Kingdom 09629850293 Stretford 1 United Kingdom 80925 Munich 1 Germany 01307-002 Sao Paulo 2 Brazil 1730 Geneva 1 Switzerland 3095 Bern 1 Switzerland 3029SK Utrecht 1 Netherlands 11932 Mexico City 2 Mexico 23 rows selected.
Using Table Aliases with the USING Clause
When we use the USING clause in a join statement, the join column is not qualified with table aliases. Do not alias it even if the same column is used elsewhere in the SQL statement. See the following example:
SQL Code:
SQL> SELECT l.location_id, l.street_address, l.postal_code, c.country_name
2 FROM locations l
3 JOIN countries c
4 USING (country_id)
5 WHERE c.country_id<>'IT';
Sample Output:
WHERE c.country_id<>'IT' * ERROR at line 5: ORA-25154: column part of USING clause cannot have qualifier
Note: The columns that are common in both the tables, but not used in the USING clause, must be prefixed with a table alias.
Outputs of the said SQL statement shown here is taken by using Oracle Database 11g Express Edition.
Previous:
JOINS with ON Clause
Next:
INNER JOINS
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/oracle/joins/joins-with-using-clause.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics