MySQL 06 – Nối hai bảng

0
85

1. Khóa ngoại – ForeignKey

Khi chúng ta tạo ra một bảng, thì chỉ lấy được thông tin của duy nhất bảng đó.Tuy nhiên một số trường hợp cần liên kết giữa các bảng lại với nhau để lấy thông tin của 2 hoặc nhiều bảng.Lúc này chúng ta sử dụng khóa ngoại để nối bảng, lấy những thông tin cần thiết giữa các bảng.

Foreign key là mối quan hệ giữa hai bảng và mối quan hệ này ta hay gọi là cha – con. Nghĩa là nếu bảng A có một trường liên kết tới bảng B thì lúc này bảng B đóng vai trò là cha và bảng A đóng vai trò là con.

Chúng ta cùng xem hình ảnh trên, ta xét hai bảng vp_comment (bình luận), vp_products(sản phẩm). Mỗi một sản phẩm có thể có không hoặc nhiều bình luận, và mỗi bình luận chỉ ở một sản phẩm. Mối quan hệ giữa bảng vp_products và bảng vp_comment là mối quan hệ một-nhiều, và nó được thiết lập bởi khóa ngoại trong bảng vp_comment là com_product, liên kết với khóa chính prod_id trong bảng vp_products.

2. Nối hai bảng với INNER JOIN

Như tôi đã nói ở trên, trong một số trường hợp chúng ta cần nối hai bảng dữ liệu lại với nhau để lấy những bản ghi cần thiết mà nếu chỉ một bảng thì không thể đáp ứng đủ dữ liệu. Quá trình nối hai bảng INNER JOIN sẽ trả lại cho chúng ta một bảng mới chứa các bản ghi có các trường chung trong điều kiện.

Cú pháp :

Trong đó:

  • ten_cot: là các trường mà chúng ta muốn lấy ra.
  • ten_bang_1 : là tên của bảng dữ liệu thứ nhất
  • ten_bang_2 : là tên của bảng dữ liệu thứ hai
  • ten_cot_chung : chính là tên cột giống nhau của hai bảng.

Ví dụ, tôi muốn nối hai bảng sản phẩm và bình luận, có trường chung là prod_id ở bảng sản phẩm và com_product ở bảng bình luận, tôi làm như sau  :

 

Các bài học MySQL cơ bản:

Tác giả : Thiện Nguyễn

[Total: 0    Average: 0/5]

LEAVE A REPLY

Please enter your comment!
Please enter your name here