>  기사  >  데이터 베이스  >  mysql의 자체 연결 및 조인 연결 구문 분석

mysql의 자체 연결 및 조인 연결 구문 분석

怪我咯
怪我咯원래의
2017-04-30 09:34:283362검색

이 글은 mysql의 self-join과 Join Association에 대한 관련 정보를 주로 소개하고 있습니다. 필요하면 아래로 올 수 있습니다. 살펴보겠습니다.

1. mysql 자체 연결

mysql이 정보 조회 시 자체 연결(자체 연결)이 필요한 경우가 있습니다 이므로 테이블에 대한 별칭을 정의해야 합니다. 다음은 구매 가격이 Huihui보다 높은 모든 정보를 찾아야 하는 테이블입니다.

일반적으로 이 테이블을 볼 때 우리는 문을 사용하여 최대한 빨리 작업합니다.

SELECT * FROM shoping WHERE price>27

상상하시겠지만 얼마나 간단한지 , 데이터베이스 테이블의 세부 데이터를 모르거나 데이터의 양이 상당히 많으면 어떻게 되나요? 데이터베이스 관리자로서 우리는 필요한 데이터를 빠르게 찾기 위해 다른 방법을 사용해야 합니다.

단계별 쿼리

가장 간단하고 생각하기 쉬운 조작 방법:

SELECT price FROM shopping WHERE name='惠惠' //得出price查询结果为27
SELECT * FROM shopping WHERE price>27

자체 연결 방식과 비교 , 이 방법은 중간 결과에 대한 수동 개입이 필요하며 이는 분명히 프로그램의 자동 처리 작업에 도움이 되지 않습니다.

자체 연결 방법:

SELECT b.* 
from shopping as a,shopping as b
where a.name='惠惠' 
and a.price<b.price 
order by b.id

다음 테이블 정보를 얻을 수 있습니다:


참고:

별칭 a와 b는 이름이 다르지만 동일한 테이블입니다. 별칭을 정의하는 목적은 삭제를 더 쉽게 하기 위한 것입니다. 테이블 자체.

select를 통해 (중간 테이블)을 실행하여 얻은 b.*가 최종 결과입니다.

서브 쿼리

서브 쿼리도 일반적으로 사용되는 방법으로, select 안에 select를 중첩시키는 것입니다.

구현 코드는 다음과 같습니다.

SELECT * FROM shopping 
WHERE price>(select price from &#39;shopping&#39; where name=&#39;惠惠&#39;)

두 가지 방법으로 얻은 결과는 다음과 같습니다.


2. JOIN

INNER JOIN

inner의 주요 기능 연관은 테이블에 일치하는 항목이 하나 이상 있으면 결과 집합을 반환한다는 것입니다. 여기서 내부 조인과 조인은 동일한 기능을 가지므로 함께 도입됩니다.
다음은 상품 테이블과 카테고리 테이블 두 개입니다.


SELECT * FROM goods INNER JOIN category 
ON goods.id=category.goods_id 
ORDER BY gods.id

The 결과는 다음과 같습니다.

LEFT JOIN

LEFT JOIN 키워드는 왼쪽 테이블에 나열됩니다. ( table_name1)은 오른쪽 테이블(table_name2)에 일치하는 행이 없더라도 거기에 있는 모든 행을 반환합니다. 프로젝트 작업 시 왼쪽 연관을 사용하는 것이 좋습니다. 그러나 테이블 관계는 여러 개 있는데, 하나의 테이블은 a에 대한 left 조인이면서 동시에 b에 대한 right 조인이기도 하다. 이 경우에는 right 조인을 추가하는 것이 더 편리할 수 있다.

처음 두 테이블을 적용하여 왼쪽 조인 쿼리를 수행합니다.

SELECT goods.*,category.cate_name 
FROM goods LEFT JOIN category 
ON goods.id=category.goods_id 
ORDER BY goods.id



RIGHT JOIN

RIGHT JOIN 키워드는 왼쪽 테이블(table_name1)에 일치하는 행이 없더라도 오른쪽 테이블(table_name2)의 모든 행을 반환합니다. 처음 두 테이블을 적용하여 올바른 상관 관계 쿼리를 수행합니다.

SELECT a.goods_name,a.price,b.*
FROM goods as a
RIGHT JOIN category as b
ON a.id=b.goods_id
ORDER BY b.id



다중 테이블 상관 관계의 경우 관련 항목을 더 추가하면 됩니다. 진술.

위 내용은 mysql의 자체 연결 및 조인 연결 구문 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.