mysql 쪽에서는 당연히 쓰는거긴 한데.. postgresql 에서도 , 로 list를 적어 주면

자동으로 cartesian product(cross join)으로 결과를 내준다고 한다.

갑자기 cross join이 inner join인지 헷갈리네...

FROM Clause

The FROM clause specifies one or more source tables for the SELECT. If multiple sources are specified, the result is the Cartesian product (cross join) of all the sources. But usually qualification conditions are added (via WHERE) to restrict the returned rows to a small subset of the Cartesian product.

[링크 : https://www.postgresql.org/docs/9.5/sql-select.html#SQL-FROM]

 

 

+

inner join과 cross join은 다른듯

join_type

One of

  • [ INNER ] JOIN

  • LEFT [ OUTER ] JOIN

  • RIGHT [ OUTER ] JOIN

  • FULL [ OUTER ] JOIN

  • CROSS JOIN

[링크 :https://www.postgresql.org/docs/9.5/sql-select.html]

 

일단은.. cross join에 where를 주면 inner join이 되는건가? 좀 헷갈리네..

Join 종류

 설명

 Cross Join

 Outer Node 의 각 row 에 대해 Inner Node 의 모든 row가 결합되어 반환

 Inner Join

 Outer Node 의 각 row 에 대해 Inner Node 의 모든 row 중 Join 조건을 만족하는 row 에 대해서만 결합되어 반환

 Equi Join

 조건의 연산자가 = 인 경우
 Non Equi Join  조건의 연산자가 = 가 아닌 경우

[링크 : https://mozi.tistory.com/69]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

sql group by like?  (0) 2019.09.25
postgresql select having  (0) 2019.09.24
postgresql select from , (cross join)  (0) 2019.09.24
postgresql transaction begin / commit / rollback  (0) 2019.09.24
sql 문 계산하기  (0) 2019.09.24
string_agg() + COALESCE() + DISTINCT  (0) 2019.09.23
Posted by 구차니

댓글을 달아 주세요