조건 없이 '교차 조인'을 사용할 수 있습니다. 교차 조인은 결과를 데카르트 곱 형식으로 제공합니다. 예를 들어, 한 테이블에 3개의 레코드가 있고 다른 테이블에 2개의 레코드가 있는 경우 첫 번째 레코드는 모든 두 번째 테이블 레코드와 일치합니다. 그런 다음 두 번째 기록에 대해서도 같은 과정을 반복합니다.
교차 조인의 예
첫 번째 테이블 만들기
mysql> CREATE table ForeignTableDemo - > ( - > Id int, - > Name varchar(100), - > FK int - > ); Query OK, 0 rows affected (0.47 sec)
두 번째 테이블 만들기
mysql> CREATE table PrimaryTableDemo - > ( - > FK int, - > Address varchar(100), - > primary key(FK) - > ); Query OK, 0 rows affected (0.47 sec)
제약조건 추가
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Query OK, 0 rows affected (1.54 sec) Records: 0 Duplicates: 0 Warnings: 0
두 번째 테이블에 레코드를 추가하려면
mysql> INSERT into PrimaryTableDemo values(1,'US'); Query OK, 1 row affected (0.10 sec) mysql> INSERT into PrimaryTableDemo values(2,'UK'); Query OK, 1 row affected (0.14 sec) mysql> INSERT into PrimaryTableDemo values(3,'Unknown'); Query OK, 1 row affected (0.08 sec)
두 번째 테이블의 레코드를 표시합니다.
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); Query OK, 1 row affected (0.20 sec) mysql> INSERT into ForeignTableDemo values (2,'Bob',2); Query OK, 1 row affected (0.27 sec)
SELECT 명령을 사용하여 레코드를 표시합니다.
mysql> SELECT * from ForeignTableDemo;
다음은 출력입니다.
+------+------+------+ | Id | Name | FK | +------+------+------+ | 1 | John | 1 | | 2 | Bob | 2 | +------+------+------+ 2 rows in set (0.00 sec)
모든 테이블에 대해 외래 키 제약 조건을 만들었습니다. 이제 ON 없이 '교차 조인'을 사용하기 위해 구문을 살펴보겠습니다.
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address - > from ForeignTableDemo - > cross join PrimaryTableDemo;
다음은 출력입니다.
+------+------+---------+ | Id | Name | Address | +------+------+---------+ | 1 | John | US | | 2 | Bob | US | | 1 | John | UK | | 2 | Bob | UK | | 1 | John | Unknown | | 2 | Bob | Unknown | +------+------+---------+ 6 rows in set (0.00 sec)