Làm cách nào để bạn chọn dữ liệu từ một bảng? Làm cách nào để bạn chọn dữ liệu từ hai hoặc nhiều bảng? Đọc bài viết này để tìm hiểu.

Bạn đang xem : nối hai bảng theo id sql

Truy vấn dữ liệu từ nhiều bảng rất phổ biến khi làm việc với cơ sở dữ liệu quan hệ. Sẽ không khó nếu bạn biết cách sử dụng các toán tử SQL chuyên dụng để thực hiện việc này. Trong bài viết này, bạn sẽ học cách nối hai bảng bằng cách sử dụng WHERE và bằng cách sử dụng toán tử đặc biệt JOIN, đồng thời bạn sẽ thấy cách lọc các hàng trong tập kết quả.

Nếu bạn muốn thực hành nối các bảng trong SQL, hãy xem khóa học SQL JOINs tương tác của chúng tôi. Nó cung cấp hơn 90 bài tập thực hành về các loại THAM GIA khác nhau. Để biết thêm các khóa học thực hành SQL, hãy xem theo dõi Thực hành SQL của chúng tôi.

Cách truy vấn một bảng duy nhất

Đầu tiên, hãy cập nhật nhanh về cách chọn dữ liệu từ một bảng. Hãy xem xét bảng sau, product :

idnameprice

1 Đồng hồ thông minh Erin234,00

2Smartwatch Sun455.00

3Smartband Eli300.00

4Smartband White124.00

Để chọn dữ liệu từ tất cả các cột và từ tất cả các hàng trong bảng này, bạn có thể sử dụng truy vấn:

CHỌN id, tên, giá
TỪ sản phẩm;

Trong truy vấn đơn giản này, tên của các cột mà bạn muốn truy xuất dữ liệu được liệt kê sau SELECT . Tiếp theo là từ khóa FROM và tên của bảng nơi lưu trữ dữ liệu.

Bạn cũng có thể lọc các hàng để chỉ trả lại các bản ghi phù hợp với tiêu chí đã cho. Hãy xem đoạn mã SQL sau:

CHỌN tên, giá
TỪ sản phẩm
GIÁ TẠI ĐÂU & lt; 250,00;

Trong trường hợp này, tập kết quả chỉ bao gồm hai hàng với các cột name price :

bảng tên

Đồng hồ thông minh Erin234.00

Smartband White124.00

Các cột được liệt kê sau SELECT , sau đó từ khóa FROM giúp chỉ định bảng mà bạn truy xuất dữ liệu từ đó. Ở cuối truy vấn, từ khóa WHERE được theo sau bởi điều kiện lọc. Trong ví dụ này, điều kiện so sánh giá trị trong cột price với 250,00. Truy vấn chỉ trả về thông tin chi tiết về một sản phẩm nếu giá của sản phẩm đó dưới 250.00.

Truy vấn dữ liệu từ nhiều bảng bằng WHERE

Cơ sở dữ liệu quan hệ được xây dựng với nhiều bảng tham chiếu đến nhau. Các hàng từ một bảng tham chiếu đến các hàng cụ thể trong một bảng khác, được kết nối bởi một số cột ID. Bây giờ chúng ta sẽ xem xét cách kết hợp dữ liệu từ một bảng với dữ liệu từ một bảng khác.

Xem xét hai bảng sau, product category , trong cơ sở dữ liệu về các sản phẩm trong kho:

sản phẩm

idproduct_namepricecategory_id

1smartwatch235.002

2bricks26.703

3lamp128,002

4sofa3200.001

5 điểm1350,001

6 sức mạnh dải 29,002

danh mục

idcategory_name

1 đồ nội thất

2 điện tử

3toys

Giả sử bạn cần một số thông tin chi tiết từ cơ sở dữ liệu kho hàng này, chẳng hạn như tên của sản phẩm, giá cả và danh mục tương ứng của chúng. Bạn có thể nối các hàng từ bảng product với các hàng từ bảng category bằng cách sử dụng mệnh đề WHERE. Hãy xem truy vấn bên dưới:

CHỌN product.product_name, product.price, category.category_name
TỪ sản phẩm, danh mục
WHERE product.category_id = category.id;

Đây là tập hợp kết quả:

Xem Thêm  Thanh di chuột chú giải công cụ HTML: Hướng dẫn tạo thông tin bổ sung - Chú giải công cụ html5 khi di chuột

product_namepricecategory_name

đồng hồ thông minh 235.00 điện tử

gạch 26,70toys

đèn128.00 điện tử

sofa3200.00furniture

bàn1350.00furniture

dải điện 29,00 điện tử

SELECT trong truy vấn này liệt kê các cột từ cả hai bảng: product_name price từ product bảng và category_name từ bảng category . Mỗi tên cột được đặt trước tên của bảng tương ứng, được phân tách bằng dấu chấm.

Tiếp theo, tên của các bảng được liệt kê sau từ khóa FROM , được phân tách bằng dấu phẩy.

Phần cuối cùng của truy vấn này là WHERE, với một điều kiện chỉ định cách nối các hàng từ cả hai bảng. Tại đây, các giá trị của cột category_id từ bảng product tương ứng với các giá trị trong id cột từ bảng danh mục và các hàng được nối khi các giá trị bằng nhau ( product.category_id = category.id ). Đồng hồ thông minh trong bảng product có ID danh mục là 2. Giá trị giống nhau trong cột id trong bảng danh mục trỏ đến “đồ điện tử” được tô màu xanh lục ở trên.

Nếu có các cột trùng tên trong cả hai bảng, chúng cần được phân biệt khi bạn đặt tên chúng trong SELECT . Bạn thực hiện việc này bằng cách đặt tên cho bảng, theo sau là dấu chấm rồi đến tên của cột. Tuy nhiên, trong ví dụ của chúng tôi, các bảng có các tên cột khác nhau và không có điểm chung. Chúng tôi có thể chỉ sử dụng tên cột trong SELECT mà không cần chỉ định chúng đến từ bảng nào, như trong truy vấn bên dưới:

CHỌN product_name, price, category_name
TỪ sản phẩm, danh mục
WHERE product.category_id = category.id;

Sử dụng WHERE là một cách để truy vấn dữ liệu từ nhiều bảng. Nó là một tiêu chuẩn SQL cũ hơn; trong khi nó vẫn còn, nó ít được sử dụng nữa. Trong phần tiếp theo, chúng ta sẽ xem xét một phương pháp khác.

Truy vấn dữ liệu từ nhiều bảng bằng cách sử dụng JOIN

Ngày nay, phương pháp phổ biến nhất để kết hợp dữ liệu từ nhiều bảng là sử dụng toán tử đặc biệt JOIN , còn được gọi là INNER JOIN . Để xem nó hoạt động như thế nào, chúng tôi sẽ sử dụng hai bảng giống nhau từ cơ sở dữ liệu kho mà bạn có thể tìm thấy bên dưới để thuận tiện.

sản phẩm

idnamepricecategory_id

1smart watch235.002

2bricks26.703

3lamp128,002

4sofa3200.001

5 điểm1350,001

6 sức mạnh dải 29,002

danh mục

idname

1 đồ nội thất

2 điện tử

3toys

Hãy xem truy vấn sau, truy vấn này chỉ định danh mục từ bảng category cho từng tên sản phẩm trong bảng product > .

LỰA CHỌN
  product.name AS product_name,
  category.name AS category_name
TỪ sản phẩm
THAM GIA danh mục TRÊN product.category_id = category.id;

Việc kết hợp được thực hiện bởi toán tử JOIN . Trong mệnh đề FROM , tên của bảng đầu tiên ( product ) được theo sau bởi từ khóa JOIN , sau đó là tên của bảng thứ hai ( category ). Tiếp theo là từ khóa ON và điều kiện để nối các hàng từ các bảng khác nhau. Tên danh mục được chỉ định dựa trên cột id của bảng category , tương đương với category_id trong bảng product ( product.category_id = category.id ).

Đây là tập hợp kết quả:

product_namecategory_name

đồng hồ điện tử thông minh

gạch

đèn điện tử

ghế sofa

bàn làm việc

dải điện

Đồng hồ thông minh có giá trị category_id là 2. Trong id cột của bảng category , giá trị 2 được liên kết với thiết bị điện tử , vì vậy đồng hồ thông minh được gán cho thiết bị điện tử.

Sử dụng toán tử JOIN là phương pháp phổ biến nhất để kết hợp nhiều bảng trong cơ sở dữ liệu. Trong bài viết "Hướng dẫn minh họa cho SQL INNER JOIN" , tôi sẽ thảo luận thêm về toán tử này. Bài viết " SQL INNER JOIN được giải thích bằng các từ đơn giản " cũng đi sâu vào chủ đề này hơn nữa. Như đã đề cập trước đó, toán tử INNER JOIN tương đương với JOIN ; bạn có thể sử dụng chúng thay thế cho nhau.

Chọn dữ liệu từ các bảng bằng cách sử dụng JOIN và WHERE

Sử dụng toán tử JOIN để truy xuất dữ liệu từ nhiều bảng cũng cho phép lọc tập kết quả dễ dàng hơn. Hãy xem truy vấn sau, là một biến thể của truy vấn trước đó và dựa trên cùng một dữ liệu:

LỰA CHỌN
  product.name AS product_name,
  category.name AS category_name
TỪ sản phẩm
THAM GIA danh mục TRÊN product.category_id = category.id
WHERE category.name! = ’Toys’;

Đây là kết quả:

product_namecategory_name

đồng hồ điện tử thông minh

đèn điện tử

ghế sofa

bàn làm việc

dải điện

Phần đầu tiên của truy vấn này giống với phần cuối cùng. Tuy nhiên, trong truy vấn này, các sản phẩm thuộc danh mục “đồ chơi” bị loại trừ. Chúng tôi lọc các hàng trong tập hợp kết quả bằng cách sử dụng mệnh đề WHERE để kiểm tra xem danh mục có phải là "đồ chơi" ( category.name! = 'Toys' ) hay không. < / p>

Để biết thêm về thực hành JOIN trong SQL, tôi mời bạn xem khóa học SQL JOINs thực hành của chúng tôi, đọc bài viết " Cách thực hành SQL JOIN " hoặc xem video " SQL JOIN Basics " video trong loạt bài “Chúng tôi học SQL” .

Ngoài ra còn có các toán tử JOIN khác. Ngoài JOIN hoặc INNER JOIN , còn có LEFT JOIN , RIGHT JOIN FULL JOIN các toán tử . Đọc thêm về chúng trong “SQL JOIN dành cho người mới bắt đầu” . Để biết thêm về thực hành SQL, hãy xem bài học Thực hành SQL của chúng tôi.

Nối các bảng trong SQL

Chúng tôi đã thấy cách bạn có thể truy xuất chi tiết đầy đủ về các đối tượng bằng cách kết hợp nhiều bảng tham chiếu đến nhau trong cơ sở dữ liệu quan hệ. Bạn có thể thực hiện điều này bằng cách sử dụng WHERE hoặc bằng cách sử dụng JOIN . Để biết thêm về sự khác biệt giữa các phương pháp này, tôi giới thiệu một bài viết rất thú vị, "Sự khác biệt giữa Có nhiều bảng trong FROM và sử dụng JOIN? ”.

Ở đây, tôi chỉ cho bạn một cái nhìn sơ lược về chủ đề này, vì vậy hãy tiếp tục học hỏi!


Xem thêm những thông tin liên quan đến chủ đề nối hai bảng bằng id sql

SQL-34: SQL INNER JOIN

  • Tác giả: thân triệu
  • Ngày đăng: 2018-01-24
  • Đánh giá: 4 ⭐ ( 9685 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này sẽ giới thiệu với các bạn về kiểu kết nối inner join trong sql. inner join hay còn gọi là kết nối bằng, kết nối tự nhiên, dùng để chọn ra các bộ dữ liệu là giao giữa hai hoặc nhiều bảng, nếu không có kết quả tương ứng thì null sẽ được trả về. Hướng dẫn SQL từ cơ bản tới nâng cao. triệu thân channel-let's grow together!

    Link tải database sử dụng trong clip: https://drive.google.com/open?id=1ohSjuq6dkyjF74WTyvqd7JyrqOkvfnib

Kết Nối Các Bảng Trong Sql Server, Truy Vấn Nhiều Bảng Với Join Trong Sql

  • Tác giả: chantamquoc.vn
  • Đánh giá: 3 ⭐ ( 3883 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cách truy vấn nhiều bảng, sử dụng các loại JOIN như LEFT JOIN, RIGHT JOIN, INNER JOIN trong SQL để lấy dữ liệu kết hợp Truy vấn nhiều bảng, Tự khớp nối các bảng Một trong nhưng lợi ích chính của SQL là khả năng kết hợp dữ liệu từ hai hay nhiều bảng lại với nhau, Việc kết hợp các bảng lại như vậy gọi là JOIN, SQL sẽ tạo ra một bảng tạm thời chứa dữ liệu kết quả từ JOIN

[SQL] Gộp Bảng - Các Loại JOIN Trong Truy Vấn SQL Server

  • Tác giả: isoft.biz
  • Đánh giá: 4 ⭐ ( 6729 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: i. Giới thiệu

    Mệnh đề Join trong SQL Server dùng để kết nối các bảng, view, sub query lại với nhau thông qua các foreign key hoặc các cột có giá trị...

Join trong SQL Server

  • Tác giả: comdy.vn
  • Đánh giá: 3 ⭐ ( 7879 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu về các loại join khác nhau trong SQL Server cho phép bạn kết hợp dữ liệu từ hai bảng.

Gộp 2 cột của 2 bảng thành một trong sql như thế nào?

  • Tác giả: diendan.congdongcviet.com
  • Đánh giá: 3 ⭐ ( 8638 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chào các bạn cho mình hỏi chút về slq mình muốn gộp 2 cột của 2 bảng thành một thì làm thế nào? Mình nghĩ mãi không biết phải làm thế nào. Pro nào chỉ giúp với

Inner Join trong SQL

  • Tác giả: viettuts.vn
  • Đánh giá: 4 ⭐ ( 9724 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lệnh Inner Join trong SQL tạo một bảng kết quả mới bằng cách kết hợp các giá trị cột của hai bảng (table1 và table2) dựa trên điều kiện nối.Ví dụ Inner Join

Nối chuỗi trong sql sử dụng hàm CONCAT() và CONCAT_WS()

  • Tác giả: hoclaptrinh.vn
  • Đánh giá: 4 ⭐ ( 1097 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong SQL chúng ta có thể sử dụng 2 hàm CONCAT() và CONCAT\_WS() để nối chuỗi. Nếu chưa hiểu rõ lắm về cách dùng 2 hàm này trong SQL

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php