English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
일반적으로 MySQL에서 ON을 사용합니다. 조인에서, 우리는 ON을 한 그룹의 열에서 사용합니다. 두 테이블이 연결된 이름이 완전히 같은 열을 공유할 때 USING은 매우 유용합니다。
예제로 들고 있습니다。
우리의 첫 번째 테이블을 생성합니다。
mysql> CREATE table ForeignTableDemo -); ( -); Id int, -); Name varchar(100), - ); FK int - );
두 번째 테이블을 생성합니다。
mysql> CREATE table PrimaryTableDemo - ); ( - ); FK int, - ); Address varchar(100), - ); primary key(FK) - );
지금 우리는 제약 조건을 추가하겠습니다。
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Records: 0 Duplicates: 0 Warnings: 0
레코드를 두 번째 테이블에 추가합니다。
mysql> INSERT into PrimaryTableDemo values(1,'US'); mysql> INSERT into PrimaryTableDemo values(2,'UK'); mysql> INSERT into PrimaryTableDemo values (3,'Unknown');
모든 기록을 표시합니다.
mysql> SELECT * from PrimaryTableDemo;
이는 출력입니다.
+----+---------+ | FK | Address | +----+---------+ | 1 | US | | 2 | UK | | 3 | Unknown | +----+---------+ 3 rows in set (0.00 sec)
지금 첫 번째 테이블에 기록을 추가하겠습니다.
mysql> INSERT into ForeignTableDemo values (1,'John',1); mysql> INSERT into ForeignTableDemo values (2,'Bob',2);
지금 첫 번째 테이블의 모든 기록을 표시하겠습니다.
mysql> SELECT * from ForeignTableDemo;
이는 출력입니다.
+------+------+------+ | Id | Name | FK | +------+------+------+ | 1 | John | 1 | | 2 | Bob | 2 | +------+------+------+ 2 rows in set (0.00 sec)
일치하는 행만을 표시하는 직접 연결 쿼리는 다음과 같습니다. 여기서 사용했습니다.
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address - > from ForeignTableDemo - > join PrimaryTableDemo - > on ForeignTableDemo.FK = PrimaryTableDemo.FK;
이는 출력입니다.
+------+------+---------+ | Id | Name | Address | +------+------+---------+ | 1 | John | US | | 2 | Bob | UK | +------+------+---------+ 2 rows in set (0.14 sec)
사용 예제.
MySQL에서 USING 문법을 사용하는 예제는 다음과 같습니다. 그 중 FK = 1의 기록입니다.
mysql> select *from ForeignTableDemo join PrimaryTableDemo using(FK) where FK=1;
이는 출력입니다.
+------+------+------+---------+ | FK | Id | Name | Address | +------+------+------+---------+ | 1 | 1 | John | US | +------+------+------+---------+ 1 row in set (0.09 sec)