Hướng dẫn how do i join two tables in different columns in mysql? - làm cách nào để nối hai bảng trong các cột khác nhau trong mysql?
Tôi muốn hợp nhất hai bảng với các cột khác nhau MySQL. Ví dụ: Show
Bảng 1 :
Ban 2:
Các bảng trên là ví dụ. Tôi đã sáp nhập với Liên minh. Đây là truy vấn của tôiUNION. Here is my query
Điều này đang hoạt động tốt sau khi thực hiện truy vấn, tôi sẽ nhận được kết quả như
Nhưng tôi muốn một cột ảo trong kết quả hiển thị hàng từ bảng như hiển thị bên dưới Mặc dù thường rất hữu ích khi tách dữ liệu thành các bảng riêng biệt cho mục đích hiệu suất và tính nhất quán, bạn thường cần tham khảo dữ liệu từ nhiều bảng để trả lời một số yêu cầu nhất định. Tham gia bảng là một cách kết hợp dữ liệu từ các bảng khác nhau bằng cách khớp với từng bản ghi dựa trên các giá trị trường chung. Có một vài loại tham gia khác nhau, cung cấp nhiều cách khác nhau để kết hợp hồ sơ bảng. Trong bài viết này, chúng tôi sẽ đề cập đến cách MySQL thực hiện tham gia và thảo luận về các kịch bản trong đó mỗi trường hợp hữu ích nhất. Nói tóm lại, tham gia là một cách hiển thị dữ liệu từ nhiều bảng. Họ làm điều này bằng cách ghép các bản ghi lại với nhau từ các nguồn khác nhau dựa trên các giá trị phù hợp trong các cột nhất định. Mỗi hàng kết quả bao gồm một bản ghi từ bảng thứ nhất kết hợp với một hàng từ bảng thứ hai, dựa trên một hoặc nhiều cột trong mỗi bảng có cùng một giá trị. Cú pháp cơ bản của một tham gia trông như thế này: SELECT * FROM <first_table> <join_type> <second_table> <join_condition>; Trong một lần nối, mỗi hàng kết quả được xây dựng bằng cách bao gồm tất cả các cột của bảng thứ nhất theo sau là tất cả các cột từ bảng thứ hai. Phần 2 của truy vấn có thể được sử dụng để chỉ định các cột chính xác bạn muốn hiển thị.Nhiều hàng có thể được xây dựng từ các bảng gốc nếu các giá trị trong các cột được sử dụng để so sánh không phải là duy nhất. Ví dụ, hãy tưởng tượng bạn có một cột được so sánh từ bảng đầu tiên có hai bản ghi có giá trị "màu đỏ". Kết hợp với đây là một cột từ bảng thứ hai có ba hàng với giá trị đó. Sự tham gia sẽ tạo ra sáu hàng khác nhau cho giá trị đó đại diện cho các kết hợp khác nhau có thể đạt được. Loại tham gia và các điều kiện tham gia xác định cách mỗi hàng được hiển thị được xây dựng. Điều này tác động đến những gì xảy ra với các hàng từ mỗi bảng và không có trận đấu với điều kiện tham gia. Để thuận tiện, nhiều người tham gia khớp với khóa chính trên một bảng có khóa nước ngoài liên quan trên bảng thứ hai. Mặc dù các khóa chính và nước ngoài chỉ được sử dụng bởi hệ thống cơ sở dữ liệu để duy trì các đảm bảo tính nhất quán, mối quan hệ của chúng thường khiến chúng trở thành một ứng cử viên tốt cho các điều kiện tham gia. Các loại tham gia khác nhauNhiều loại tham gia có sẵn, mỗi loại có khả năng tạo ra kết quả khác nhau. Hiểu cách từng loại được xây dựng sẽ giúp bạn xác định cái nào phù hợp cho các kịch bản khác nhau. Nội tâm và chéo tham giaSự tham gia mặc định được gọi là tham gia bên trong. Trong MySQL, điều này có thể được chỉ định bằng cách sử dụng 3, chỉ 4 hoặc 5. Đối với các hệ thống cơ sở dữ liệu khác, 3 và 5 thường là hai khái niệm riêng biệt, nhưng MySQL thực hiện chúng trong cùng một cấu trúc.Dưới đây là một ví dụ điển hình chứng minh cú pháp của một lần nối bên trong:
Chỗ nối bên tráiTham gia bên trái là một tham gia hiển thị tất cả các bản ghi được tìm thấy trong một tham gia bên trong, cộng với tất cả các hàng chưa từng có từ bảng đầu tiên. Trong MySQL, điều này có thể được chỉ định là 3 hoặc chỉ là 4.
Cú pháp cơ bản của tham gia bên trái theo mẫu này:
Đúng vậy tham giaTham gia bên phải là một sự tham gia hiển thị tất cả các bản ghi được tìm thấy trong một tham gia bên trong, cộng với tất cả các hàng chưa từng có từ bảng thứ hai. Trong MySQL, điều này có thể được chỉ định là 6 hoặc chỉ là 7.Cú pháp cơ bản của tham gia bên phải theo mẫu này:
Tham gia đầy đủMột sự tham gia đầy đủ là một sự tham gia hiển thị tất cả các bản ghi được tìm thấy trong một tham gia bên trong, cộng với tất cả các hàng chưa từng có từ cả hai bảng thành phần. MySQL không thực hiện hoàn toàn các kết nối đầy đủ, nhưng chúng ta có thể mô phỏng hành vi bằng một vài thủ thuật. Để tái tạo kết quả của một lần nối bên ngoài đầy đủ, chúng tôi sẽ thực hiện tham gia bên trái vào tất cả các kết quả được chia sẻ bởi cả hai bảng và tất cả các hàng chưa từng có từ bảng bên trái. Sau đó, chúng tôi sẽ sử dụng toán tử 9 để kết hợp các kết quả đó với "chống join" cho bảng phù hợp. "Chống tham gia" là một hoạt động tham gia mà độc quyền tìm thấy kết quả không có điểm chung giữa các bảng.Cú pháp cơ bản của tham gia đầy đủ theo mẫu này: 0Vì mỗi hàng trong một lần nối bao gồm các cột của cả hai bảng, các cột chưa từng có sử dụng 5 làm giá trị cho tất cả các cột trong bảng chưa từng có.Nếu bạn đại diện cho kết quả dưới dạng sơ đồ Venn của các bảng thành phần, một lần tham gia đầy đủ cho phép bạn hoàn toàn thể hiện cả hai vòng tròn thành phần. Giao điểm của hai vòng tròn sẽ có các giá trị được cung cấp bởi mỗi bảng thành phần. Các phần của các vòng tròn bên ngoài khu vực chồng chéo sẽ có các giá trị từ bảng mà chúng thuộc về, sử dụng 5 để điền vào các cột được tìm thấy trong bảng khác.Tự tham giaTự tham gia là bất kỳ sự tham gia nào kết hợp các hàng của bảng với chính nó. Nó có thể không rõ ràng làm thế nào điều này có thể hữu ích, nhưng nó thực sự có nhiều ứng dụng phổ biến. Thông thường, các bảng mô tả các thực thể có thể hoàn thành nhiều vai trò trong mối quan hệ với nhau. Chẳng hạn, nếu bạn có một bảng 2, mỗi hàng có khả năng chứa cột 3 tham chiếu khác 2 trong bảng. Một sự tham gia của bản thân sẽ cho phép bạn khâu các hàng khác nhau này lại với nhau bằng cách tham gia một phiên bản thứ hai của bảng đến lần đầu tiên nơi các giá trị này khớp với nhau.Vì bản thân tham gia tham chiếu cùng một bảng hai lần, nên các bí danh bảng được yêu cầu để định hướng các tài liệu tham khảo. Ví dụ, trong ví dụ trên, bạn có thể tham gia hai trường hợp của bảng 2 bằng các bí danh 6 và 7. Bằng cách đó, bạn có thể chỉ định thể hiện của bảng bạn đang đề cập đến khi xác định các điều kiện tham gia.Dưới đây là một ví dụ khác, lần này đại diện cho mối quan hệ giữa nhân viên và người quản lý: 1Tham gia điều kiệnKhi kết hợp các bảng, điều kiện nối xác định mức độ các hàng sẽ được khớp với nhau để tạo thành kết quả tổng hợp. Tiền đề cơ bản là xác định các cột trong mỗi bảng phải khớp với sự tham gia xảy ra trên hàng đó. Điều khoản -------------------------------------------------------------------------- item_id title slug type views updatedAt createdAt from_tbl -------------------------------------------------------------------------- 1 sometitle someslg 1 43454 timestamp timestamp t1 1 sometitle someslg 3434 timestamp timestamp t2 2 sometitle someslg 1 43566 timestamp timestamp t1 2 sometitle someslg 6454 timestamp timestamp t2 3 sometitle someslg 5454 timestamp timestamp t2 8Cách tiêu chuẩn nhất để xác định các điều kiện để tham gia bảng là với mệnh đề 8. Điều khoản 8 sử dụng một dấu bằng để chỉ định các cột chính xác từ mỗi bảng sẽ được so sánh để xác định khi nào có thể xảy ra tham gia. MySQL sử dụng các cột được cung cấp để ghép các hàng với nhau từ mỗi bảng.Điều khoản 8 là dòng dài nhất, nhưng cũng linh hoạt nhất trong các điều kiện tham gia có sẵn. Nó cho phép tính đặc hiệu bất kể các tên cột được tiêu chuẩn hóa như thế nào của mỗi bảng được kết hợp.Cú pháp cơ bản của mệnh đề 8 trông như thế này: 2Tại đây, các hàng từ 3 và Điều khoản SELECT *FROM table_1[INNER] JOIN table_2 ON table_1.id = table_2.table_1_id;5Điều khoản 5 là một tốc ký để chỉ định các điều kiện của mệnh đề Điều khoản SELECT *FROM table_1LEFT JOIN table_2 ON table_1.id = table_2.table_1_id;1Điều khoản 1 là một tốc ký khác có thể làm giảm thêm độ mẫn của mệnh đề Tham gia điều kiện và mệnh đề SELECT *FROM table_1RIGHT JOIN table_2 ON table_1.id = table_2.table_1_id;6Tham gia các điều kiện chia sẻ nhiều đặc điểm với các so sánh được sử dụng để lọc các hàng dữ liệu bằng các mệnh đề 6. Cả hai cấu trúc xác định các biểu thức phải đánh giá đúng cho hàng được xem xét. Bởi vì điều này, không phải lúc nào cũng trực quan về sự khác biệt giữa bao gồm các so sánh bổ sung trong cấu trúc Lần này, chỉ có ba hàng được hiển thị:Thứ tự mà các so sánh được thực hiện là lý do cho những khác biệt này. Lần này, MySQL xử lý truy vấn như thế này: Kết hợp bất kỳ hàng nào trong bảng 00 với bảng 01 trong đó 02 khớp với 10.Đánh giá mệnh đề 6 để loại bỏ bất kỳ hàng nào không có 12345 là giá trị cho cột Sự kết luận Trong bài viết này, chúng tôi đã thảo luận về sự tham gia là gì và cách MySQL thực hiện chúng như một cách kết hợp các bản ghi từ nhiều bảng. Chúng tôi đã đề cập đến các loại tham gia khác nhau có sẵn và cách các điều kiện khác nhau như các mệnh đề -------------------------------------------------------------------------- item_id title slug type views updatedAt createdAt from_tbl -------------------------------------------------------------------------- 1 sometitle someslg 1 43454 timestamp timestamp t1 1 sometitle someslg 3434 timestamp timestamp t2 2 sometitle someslg 1 43566 timestamp timestamp t1 2 sometitle someslg 6454 timestamp timestamp t2 3 sometitle someslg 5454 timestamp timestamp t2 8 và SELECT *FROM table_1RIGHT JOIN table_2 ON table_1.id = table_2.table_1_id;6 ảnh hưởng đến cách cơ sở dữ liệu xây dựng kết quả.Khi bạn quen thuộc hơn với các lần tham gia, bạn sẽ có thể sử dụng chúng như một phần thông thường trong bộ công cụ của mình để lấy dữ liệu từ nhiều nguồn khác nhau và ghép các mẩu thông tin lại với nhau để tạo ra một bức tranh đầy đủ hơn. Tham gia giúp tập hợp dữ liệu mà các nguyên tắc tổ chức và xem xét hiệu suất có thể tách rời. Học cách sử dụng hiệu quả các tham gia có thể giúp bạn tập hợp dữ liệu bất kể nó được tổ chức một cách hiệu quả trong hệ thống. Làm cách nào để tham gia hai cột của các bảng khác nhau trong MySQL?Điều khoản sử dụng này Tham gia kết hợp Bảng1 với Bảng2 khi hai cột mà cả hai bảng chia sẻ (ID và trạng thái) mỗi bảng có các giá trị phù hợp. Bảng1.ID = Bảng2.ID và Bảng1. trạng thái = Bảng 2.This join combines table1 with table2 when two columns that both tables share ( id and state ) each have matching values. table1.id = table2.id AND table1. state = table2.
Bạn có thể tham gia hai bảng với nhiều cột SQL không?Bạn sẽ tham gia các bảng, đôi khi bằng một cột và các lần khác bởi hai hoặc nhiều cột.Như bạn đã thấy, việc tham gia các bảng theo nhiều cột khá đơn giản trong SQL.Nhưng nếu bạn muốn trở nên tự tin trong việc sử dụng các tham gia SQL, thực hành với các bộ dữ liệu trong thế giới thực là một yếu tố thành công quan trọng.joining tables by multiple columns is quite straightforward in SQL. But if you want to become confident in using SQL JOINs , practicing with real-world data sets is a key success factor.
Làm cách nào để tham gia hai bảng với các tên cột khác nhau trong SQL?Hợp nhất bảng theo cột.Nhiều bảng có thể được hợp nhất bởi các cột trong SQL bằng cách sử dụng các kết nối.Tham gia hợp nhất hai bảng dựa trên các cột được chỉ định (thường là khóa chính của một bảng và khóa ngoại của bảng khác).using joins. Joins merge two tables based on the specified columns (generally, the primary key of one table and a foreign key of the other).
Bạn có thể tham gia các bảng trên 2 cột không?Nếu bạn muốn lấy dữ liệu được lưu trữ trong các bảng được nối bởi khóa ghép có khóa chính trong một bảng và khóa ngoại trong một bảng khác, chỉ cần sử dụng điều kiện tham gia trên nhiều cột.Trong một bảng tham gia (trong ví dụ của chúng tôi, đăng ký), chúng tôi có một khóa chính được xây dựng từ hai cột (student_id và khóa học_code).use a join condition on multiple columns. In one joined table (in our example, enrollment ), we have a primary key built from two columns ( student_id and course_code ). |