your programing

JOIN 문 (SQL)에서 정확히 "왼쪽"테이블과 "오른쪽"테이블은 무엇입니까?

lovepro 2020. 12. 25. 23:33
반응형

JOIN 문 (SQL)에서 정확히 "왼쪽"테이블과 "오른쪽"테이블은 무엇입니까?


주어진 테이블을 왼쪽 테이블로 만드는 것은 무엇입니까?

쿼리의 "From"부분에 테이블이 표시되어 있습니까?

아니면 = 연산자의 왼쪽에 있기 때문에 왼쪽 테이블입니까?

다음은 동등합니까?

SELECT *
FROM left_table
LEFT JOIN right_table ON left_table.right_id = right_table.id

SELECT *
FROM left_table
LEFT JOIN right_table on right_table.left_id = left_table.id

???

감사


왼쪽 테이블은 선택 항목의 첫 번째 테이블입니다. 예, 두 가지 예는 동일합니다.


오른쪽 테이블은 항상 당신이 조인하는 테이블입니다. 예, 두 진술 모두 동일합니다.

JOIN [Table] ON ...

[표]는 항상 올바른 표입니다.


대략 "왼쪽"은 다른 JOIN, 하위 쿼리, VIEW 및 STORED PROCEDURES의 결과를 포함하여 왼쪽에서 오른쪽으로 읽을 때 전체 FROM 절에서 처음 나타나는 모든 결과입니다.

절의 일부에 있는 =연산자 대칭 이므로 (a = b이면 b = a) 순서에 관계없이 결과가 동일하기 때문에 두 SQL 문은 동일 합니다.ONJOIN

일반 조인은 JOIN의 ON 절이 참인 행만 표시하고 LEFT JOIN은 조건이 거짓 인 경우 "왼쪽"의 레코드도 표시합니다 (SELECT에있는 "오른쪽"의 열에 대해 NULL 표시).

예를 들면 :

-- People:           -- Car
id | name            owner_id | model
---+------------     ---------+------------
1  | Paul            1        | Ferrari
2  | Nancy           2        | Porsche
3  | Arthur          NULL     | Lamborghini
4  | Alfred          10       | Maserati

> select people.name, car.model from people join car on car.owner_id=people.id;

name     | model
---------+--------------
Paul     | Ferrari
Nancy    | Porsche
2 record(s) found

> select people.name, car.model from people left join car on 
  car.owner_id=people.id;

name     | model
---------+--------------
Paul     | Ferrari
Nancy    | Porsche
Arthur   | NULL
Alfred   | NULL     
4 record(s) found

> select people.name, car.model from people left join car on 
  people.id = car.owner_id;

name     | model
---------+--------------
Paul     | Ferrari
Nancy    | Porsche
Arthur   | NULL
Alfred   | NULL     
4 record(s) found

조인에 대한 꽤 좋은 연습은 http://en.wikipedia.org/wiki/Join_(SQL)을 참조하십시오.

그리고 네, 두 문장 모두 동일합니다 :-)


예, 테이블이 나타나는 JOIN 연산자의 측면에 의해 결정됩니다. 두 가지 예는 실제로 동일합니다.

ReferenceURL : https://stackoverflow.com/questions/4109704/which-table-exactly-is-the-left-table-and-right-table-in-a-join-statement-s

반응형