11_SQL. Jak łączyć dwie tabele w SQL Oracle

Aby łączyć dwie tabele w SQL tabele muszą posiadać wspólny klucz, cechę pozwalającą na przyporządkowywanie rekordów w obu łączonych tabelach.

 Łączyć dwie tabele w SQL można za pomocą klauzuli WHERE 

Skorzystamy z tabel EMPLOYEES i JOBS z bezpłatnej bazy Oracle HR dostępnej tutaj: http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

Obie tabele maja wspólną wartość JOBS_ID. Postanowiliśmy wybrak kilka elementów z obu tabel i stworzyć tabelę łączoną.

SELECT

   EMPLOYEES.FIRST_NAME,

   EMPLOYEES.LAST_NAME,

   EMPLOYEES.PHONE_NUMBER,

   JOBS.JOB_ID,

   JOBS.JOB_TITLE,

   JOBS.MIN_SALARY,

   JOBS.MAX_SALARY

FROM EMPLOYEES, JOBS

WHERE jobs.job_id = EMPLOYEES.JOB_ID;

Otrzymujemy tabelę wynikową:

 

Teraz chcemy łączyć dwie tabele w SQL z bazy HR: EMPLOYEES i DEPARTMENTS.

 

SELECT

   EMPLOYEES.FIRST_NAME,

   EMPLOYEES.LAST_NAME,

   EMPLOYEES.PHONE_NUMBER,

   DEPARTMENTS.DEPARTMENT_ID

FROM EMPLOYEES, DEPARTMENTS

WHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;

Otrzymujemy tabelę wynikową:

Przy prostych zapytaniach można pominąć nazwy tabel jeżeli kolumny w tabeli są unikalne.

SELECT

FIRST_NAME,

LAST_NAME,

PHONE_NUMBER,

   DEPARTMENTS.DEPARTMENT_ID

FROM EMPLOYEES, DEPARTMENTS, JOBS

WHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID;