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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기