PostgreSQL
Kapcsolatok (JOIN)
Foreign key alapok, JOIN típusok, INNER/LEFT JOIN minták, aliasok és több JOIN láncolása.
Kapcsolatok (JOIN)
Foreign key példa
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id),
total NUMERIC(10, 2) NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);JOIN típusok
| Típus | Mit ad vissza? |
|---|---|
| INNER JOIN | csak egyező sorok |
| LEFT JOIN | minden bal oldali + egyezések |
| RIGHT JOIN | minden jobb oldali + egyezések |
| FULL JOIN | mindkét oldal összes sora |
INNER JOIN
SELECT u.name, o.total
FROM users u
JOIN orders o ON u.id = o.user_id;LEFT JOIN
SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;Több JOIN
SELECT u.name, p.name AS product_name, oi.quantity, oi.price
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.id;Rövid összefoglaló
- Foreign key adatintegritást ad.
- INNER/LEFT a leggyakoribb JOIN-ok.
- Aliasokkal (
u,o) olvashatóbb a lekérdezés.