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 문은 동일 합니다.ON
JOIN
일반 조인은 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
'your programing' 카테고리의 다른 글
GCC가 부동 소수점 표현식이 음수가 아닌 것으로 가정하도록 강제하는 방법은 무엇입니까? (0) | 2020.12.25 |
---|---|
bcrypt보다 scrypt의 장점은 무엇입니까? (0) | 2020.12.25 |
SW를 호스팅하는 최고의 자식은 무엇입니까? (0) | 2020.12.25 |
1d 배열이 예상되었을 때 열 벡터 y가 전달되었습니다. (0) | 2020.10.16 |
왜 os.path.abspath와 os.path.realpath를 모두 사용합니까? (0) | 2020.10.16 |