CARTESIAN JOIN hoặc CROSS JOIN trong SQL trả về tích Đề-các của các tập hợp bản ghi từ hai hoặc nhiều bảng đã được kết hợp. Vì thế, nó tương đương như một INNER JOIN khi join-condition luôn luôn ước lượng là True hoặc khi join-condition là vắng mặt trong lệnh.

Cú pháp

Cú pháp cơ bản của CARTESIAN JOIN hoặc CROSS JOIN trong SQL như sau:


SELECT bang1.cot1, bang2.cot2...
FROM  bang1, bang2 [, bang3 ]

```Ví dụ
-----

Giả sử có hai bảng, bảng SINHVIEN có các bản ghi sau:

+----+---------+-----+-----------+--------+ | ID | TEN | TUOI| KHOAHOC | HOCPHI | +----+---------+-----+-----------+---------+ | 1 | Hoang | 21 | CNTT | 4000000 | | 2 | Viet | 19 | DTVT | 3000000 | | 3 | Thanh | 18 | KTDN | 4000000 | | 4 | Nhan | 19 | CK | 4500000 | | 5 | Huong | 20 | TCNH | 5000000 | +----+---------+-----+-----------+---------+

```Bảng MUONSACH có các bản ghi sau:


+-----+---------------------+-------------+--------+
|STT  | NGAY                | SINHVIEN_ID | SOTIEN |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 |           3 |   320 |
| 100 | 2009-10-08 00:00:00 |           3 |   250 |
| 101 | 2009-11-20 00:00:00 |           2 |   280 |
| 103 | 2008-05-20 00:00:00 |           4 |   290 |
+-----+---------------------+-------------+--------+

```Bây giờ, chúng ta kết hợp hai bảng bởi sử dụng CARTESIAN JOIN trong SQL như sau:

SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN, MUONSACH;

```Ví dụ trên sẽ cho kết quả:



+----+----------+--------+---------------------+
| ID | TEN     | SOTIEN | NGAY                |
+----+----------+--------+---------------------+
|  1 | Hoang   |   320 | 2009-10-08 00:00:00 |
|  1 | Hoang   |   250 | 2009-10-08 00:00:00 |
|  1 | Hoang   |   280 | 2009-11-20 00:00:00 |
|  1 | Hoang   |   290 | 2008-05-20 00:00:00 |
|  2 | Viet   |   320 | 2009-10-08 00:00:00 |
|  2 | Viet   |   250 | 2009-10-08 00:00:00 |
|  2 | Viet   |   280 | 2009-11-20 00:00:00 |
|  2 | Viet   |   290 | 2008-05-20 00:00:00 |
|  3 | Thanh  |   320 | 2009-10-08 00:00:00 |
|  3 | Thanh  |   250 | 2009-10-08 00:00:00 |
|  3 | Thanh  |   280 | 2009-11-20 00:00:00 |
|  3 | Thanh  |   290 | 2008-05-20 00:00:00 |
|  4 | Nhan |   320 | 2009-10-08 00:00:00 |
|  4 | Nhan |   250 | 2009-10-08 00:00:00 |
|  4 | Nhan |   280 | 2009-11-20 00:00:00 |
|  4 | Nhan |   290 | 2008-05-20 00:00:00 |
|  5 | Huong   |   320 | 2009-10-08 00:00:00 |
|  5 | Huong   |   250 | 2009-10-08 00:00:00 |
|  5 | Huong   |   280 | 2009-11-20 00:00:00 |
|  5 | Huong   |   290 | 2008-05-20 00:00:00 |
+----+----------+--------+---------------------+

```- - - - - -

<div class="pre-btn">[Trang trước](../sql/self_join_trong_sql.jsp)</div><div class="pdf-btn">[PDF](../sql/pdf/cartesian_join_trong_sql.pdf "CARTESIAN JOIN hoặc CROSS JOIN trong SQL")</div><div class="nxt-btn">[Trang sau](../sql/ham_trong_sql.jsp)</div><div class="parent-file">su\_dung\_join\_trong\_sql.jsp</div>- - - - - -

<div class="fb-comments" data-href="http://vietjack.com/sql/cartesian_join_trong_sql.jsp" data-numposts="5" data-order-by="reverse_time"></div>- - - - - -

<div class="bottomgooglead"><div class="bottomadtag">Quảng cáo</div><div class="bottomgooglead"><div class="bottomadtag">Bài viết liên quan</div><div>**Các loạt bài khác:**

- 

</div></div></div>

Viết câu trả lời

Drop Images

0 Bình luận