PostgreSQL NATURAL JOIN을 사용하여 둘 이상의 테이블에서 데이터를 쿼리 하는 방법
NATURAL JOIN은 조인된 테이블의 동일한 열 이름을 기반으로 암시적 조인을 만드는 조인입니다.
SELECT select_list
FROM T1
NATURAL [INNER, LEFT, RIGHT] JOIN T2;
- NATURAL JOIN은 INNER JOIN, LEFT OR RIGHT JOIN이 될 수 있습니다.
- 조인을 명시적으로 하지 않는 경우 INNER JOIN이 기본값이 됩니다.
DROP TABLE IF EXISTS categories;
CREATE TABLE categories (
category_id serial PRIMARY KEY,
category_name VARCHAR (255) NOT NULL
);
DROP TABLE IF EXISTS products;
CREATE TABLE products (
product_id serial PRIMARY KEY,
product_name VARCHAR (255) NOT NULL,
category_id INT NOT NULL,
FOREIGN KEY (category_id) REFERENCES categories (category_id)
);
INSERT INTO categories (category_name)
VALUES
('Smart Phone'),
('Laptop'),
('Tablet');
INSERT INTO products (product_name, category_id)
VALUES
('iPhone', 1),
('Samsung Galaxy', 1),
('HP Elite', 2),
('Lenovo Thinkpad', 2),
('iPad', 3),
('Kindle Fire', 3);
--products 테이블과 categories 테이블을 조인합니다.
SELECT * FROM products
NATURAL JOIN categories;
-- same
SELECT * FROM products
INNER JOIN categories USING (category_id);
- NATURAL JOIN은 공통 열을 기반으로하는 암시적 조인 절을 사용하기 때문에 조인 절이 필요가 없습니다.
- 하지만 예기치 못한 결과가 발생할 수 도 있습니다.
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - GROUP BY (0) | 2021.09.02 |
---|---|
[PostgreSQL] BASIC - INNER JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - Cross JOIN (0) | 2021.09.02 |
[PostgreSQL] BASIC - Table Aliases (0) | 2021.09.02 |
[PostgreSQL] BASIC - JOIN (0) | 2021.09.02 |
최근댓글