mysql에서는 "inner Join" 문을 사용하여 다중 테이블 내부 조인 쿼리를 수행할 수 있습니다. "select * from table inner Join table on table 1. field = table 2. field;"만 사용하면 됩니다. 성명. 두 테이블의 레코드를 결합하고 일치하는 관련 필드가 있는 레코드를 반환합니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
Inner Join
join 또는 Inner Join
SQL 문: select * from Student Inner Join Score on Student.Num=score.Stu_id;
이때의 문은 다음과 같습니다. select * from Student,score where Student . ID=course.ID;
확장 정보:
Outer Join
1. Left Join Left Join 또는 Left Outer Join
SQL 문: Student.Num=score.Stu_id의 학생 왼쪽 조인 점수에서 *를 선택하세요. ;
2. 오른쪽 조인 또는 오른쪽 외부 조인
SQL 문: Student.Num=score.Stu_id;
SQL의 학생 오른쪽 조인 점수에서 *를 선택하세요. 명령문 :student.Num=score.Stu_id;의 학생 전체 조인 점수에서 *를 선택합니다.
위의 세 가지 방법을 통해 서로 다른 테이블을 함께 조인하여 하나의 큰 테이블로 만들 수 있으며 후속 쿼리 작업이 더 간단해집니다.
select * from Student,score;의 경우 결과가 너무 번거로울 수 있으므로 이 문을 사용하지 마세요.
교차 조인
교차 조인, 쿼리 조건을 지정하는 where 절이 없는 교차 조인은 두 테이블의 데카르트 곱을 생성합니다.
SQL 문: 학생 교차 조인 점수에서 * 선택;
다른 구조의 테이블 연결
두 테이블이 다대다 관계에 있는 경우 중간 테이블인 Student_score를 만들어야 합니다. 최소한 두 테이블의 기본 키입니다.
SQL 문: sc로 왼쪽으로 Student_score에서 s.Name,C.Cname을 선택하고 s.Sno=sc.Sno로 왼쪽으로 조인 점수를 c로 c로 c.Cno=sc.Cno
select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五一';
빨간 부분은 다음과 같습니다. 가운데 테이블은 두 테이블의 내용을 모두 모아 놓은 일반 테이블이다.
UNION 연산자는 두 개 이상의 select 문의 결과 집합을 결합하는 데 사용됩니다.
UNION 내부의 SELECT 문에는 동일한 수의 열이 있어야 하고, 각 열의 데이터 유형도 유사해야 하며, 각 SELECT 문의 열 순서가 동일해야 합니다.
select Num from student union select Stu_id from score;
Union 연산자는 기본적으로 중복 여부를 확인합니다. 중복 값이 허용되면 Union All을 사용할 수 있습니다. 구조가 동일한 두 테이블의 경우 Union을 통해 하나의 테이블로 병합할 수도 있습니다.
select * from student1 union select *from student2;
Subquery
때때로 쿼리에 필요한 조건이 다른 select 문의 결과인 경우 하위 쿼리가 사용됩니다.
1. IN 키워드가 포함된 하위 쿼리
SQL 문: select * from Student where Num IN(점수에서 Stu_id 선택);
2. EXISTS 키워드가 포함된 하위 쿼리
Exists 내부 쿼리는 true가 반환되면, 외부 쿼리는 쿼리하고, 그렇지 않으면 외부 쿼리는 쿼리하지 않습니다.
SQL 문: 존재하는 학생에게서 * 선택(C_name='컴퓨터'인 점수에서 * 선택);
3. ANY 키워드가 포함된 하위 쿼리
한 키워드만 만족하면 ANY 키워드를 사용하세요. 외부 쿼리를 실행합니다.
SQL 문: sname,(date_format(from_days(now())-to_days(생일)),'%Y')+0)을 생일>ANY인 학생의 '나이'로 선택(bumen=인 학생의 생일 선택) '컴퓨터과학과');
4. ALL 키워드를 사용한 하위 쿼리
ALL 키워드를 사용하려면 외부 쿼리를 실행하기 전에 모든 내부 쿼리 문에서 반환된 모든 결과를 충족해야 합니다.
SQL 문: select sname,(date_format (from_days( now())-to_days(생일)),'%Y')+0)을 생일이 있는 학생의 '나이'로>ALL(bumen='컴퓨터과학과'인 학생의 생일 선택);
관련 학습 추천:
mysql 튜토리얼위 내용은 다중 테이블 조인 쿼리에 사용되는 문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!