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;


