Tham gia mysql nơi không khớp

Ghi chú. THAM GIA là chủ đề bị hiểu lầm nhiều nhất trong số những người học SQL. Để đơn giản và dễ hiểu, chúng tôi sẽ sử dụng Cơ sở dữ liệu mới để thực hành mẫu. Như hình dưới đây

idfirst_namelast_namemovie_id1AdamSmith12RaviKumar23SusanDavidson54JennyAdrianna85LeePong10

idtitlecategory1ASSASSIN'S CREED. EMBERSAHoạt hình2Real Steel(2012)Hoạt hình3Alvin and the ChipmunksHoạt hình4Cuộc phiêu lưu của Tin TinHoạt hình5Safe (2012)Hành động6Safe House(2012)Hành động7GIA18+8Hạn chót 200918+9The Dirty Picture18+10Marley và tôiLãng mạn

 

Các loại tham gia

THAM GIA chéo

Cross THAM GIA là một hình thức THAM GIA đơn giản nhất khớp từng hàng từ một bảng cơ sở dữ liệu với tất cả các hàng của một bảng khác

Nói cách khác, nó cung cấp cho chúng ta sự kết hợp của từng hàng của bảng đầu tiên với tất cả các bản ghi trong bảng thứ hai

Giả sử chúng tôi muốn lấy tất cả các bản ghi thành viên so với tất cả các bản ghi phim, chúng tôi có thể sử dụng tập lệnh được hiển thị bên dưới để có kết quả mong muốn

Tham gia mysql nơi không khớp

SELECT * FROM `movies` CROSS JOIN `members`

Thực thi đoạn script trên trong bàn làm việc của MySQL cho chúng ta kết quả như sau


 





























id
















title
















 
















id
















first_name
















last_name
















movie_id




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















1
















Adam
















Smith
















1




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















2
















Ravi
















Kumar
















2




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















3
















Susan
















Davidson
















5




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















4
















Jenny
















Adrianna
















8




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















6
















Lee
















Pong
















10




































2
















Real Steel(2012)
















Animations
















1
















Adam
















Smith
















1




































2
















Real Steel(2012)
















Animations
















2
















Ravi
















Kumar
















2




































2
















Real Steel(2012)
















Animations
















3
















Susan
















Davidson
















5




































2
















Real Steel(2012)
















Animations
















4
















Jenny
















Adrianna
















8




































2
















Real Steel(2012)
















Animations
















6
















Lee
















Pong
















10




































3
















Alvin and the Chipmunks
















Animations
















1
















Adam
















Smith
















1




































3
















Alvin and the Chipmunks
















Animations
















2
















Ravi
















Kumar
















2




































3
















Alvin and the Chipmunks
















Animations
















3
















Susan
















Davidson
















5




































3
















Alvin and the Chipmunks
















Animations
















4
















Jenny
















Adrianna
















8




































3
















Alvin and the Chipmunks
















Animations
















6
















Lee
















Pong
















10




































4
















The Adventures of Tin Tin
















Animations
















1
















Adam
















Smith
















1




































4
















The Adventures of Tin Tin
















Animations
















2
















Ravi
















Kumar
















2




































4
















The Adventures of Tin Tin
















Animations
















3
















Susan
















Davidson
















5




































4
















The Adventures of Tin Tin
















Animations
















4
















Jenny
















Adrianna
















8




































4
















The Adventures of Tin Tin
















Animations
















6
















Lee
















Pong
















10




































5
















Safe (2012)
















Action
















1
















Adam
















Smith
















1




































5
















Safe (2012)
















Action
















2
















Ravi
















Kumar
















2




































5
















Safe (2012)
















Action
















3
















Susan
















Davidson
















5




































5
















Safe (2012)
















Action
















4
















Jenny
















Adrianna
















8




































5
















Safe (2012)
















Action
















6
















Lee
















Pong
















10




































6
















Safe House(2012)
















Action
















1
















Adam
















Smith
















1




































6
















Safe House(2012)
















Action
















2
















Ravi
















Kumar
















2




































6
















Safe House(2012)
















Action
















3
















Susan
















Davidson
















5




































6
















Safe House(2012)
















Action
















4
















Jenny
















Adrianna
















8




































6
















Safe House(2012)
















Action
















6
















Lee
















Pong
















10




































7
















GIA
















18+
















1
















Adam
















Smith
















1




































7
















GIA
















18+
















2
















Ravi
















Kumar
















2




































7
















GIA
















18+
















3
















Susan
















Davidson
















5




































7
















GIA
















18+
















4
















Jenny
















Adrianna
















8




































7
















GIA
















18+
















6
















Lee
















Pong
















10




































8
















Deadline(2009)
















18+
















1
















Adam
















Smith
















1




































8
















Deadline(2009)
















18+
















2
















Ravi
















Kumar
















2




































8
















Deadline(2009)
















18+
















3
















Susan
















Davidson
















5




































8
















Deadline(2009)
















18+
















4
















Jenny
















Adrianna
















8




































8
















Deadline(2009)
















18+
















6
















Lee
















Pong
















10




































9
















The Dirty Picture
















18+
















1
















Adam
















Smith
















1




































9
















The Dirty Picture
















18+
















2
















Ravi
















Kumar
















2




































9
















The Dirty Picture
















18+
















3
















Susan
















Davidson
















5




































9
















The Dirty Picture
















18+
















4
















Jenny
















Adrianna
















8




































9
















The Dirty Picture
















18+
















6
















Lee
















Pong
















10




































10
















Marley and me
















Romance
















1
















Adam
















Smith
















1




































10
















Marley and me
















Romance
















2
















Ravi
















Kumar
















2




































10
















Marley and me
















Romance
















3
















Susan
















Davidson
















5




































10
















Marley and me
















Romance
















4
















Jenny
















Adrianna
















8




































10
















Marley and me
















Romance
















6
















Lee
















Pong
















10




























THAM GIA BÊN TRONG

THAM GIA bên trong được sử dụng để trả về các hàng từ cả hai bảng thỏa mãn điều kiện đã cho

Giả sử bạn muốn lấy danh sách các thành viên đã thuê phim cùng với tên phim mà họ đã thuê. Bạn chỉ có thể sử dụng INNER THAM GIA cho điều đó, trả về các hàng từ cả hai bảng thỏa mãn các điều kiện đã cho

Tham gia mysql nơi không khớp

 

SELECT members.`first_name` , members.`last_name` , movies.`title`
FROM members ,movies
WHERE movies.`id` = members.`movie_id`

Thực thi đoạn script trên cho





























first_name
















last_name
















title




































Adam
















Smith
















ASSASSIN'S CREED: EMBERS




































Ravi
















Kumar
















Real Steel(2012)




































Susan
















Davidson
















Safe (2012)




































Jenny
















Adrianna
















Deadline(2009)




































Lee
















Pong
















Marley and me




























Lưu ý tập lệnh kết quả trên cũng có thể được viết như sau để đạt được kết quả tương tự

SELECT A.`first_name` , A.`last_name` , B.`title`
FROM `members`AS A
INNER JOIN `movies` AS B
ON B.`id` = A.`movie_id`

THAM GIA bên ngoài

MySQL Outer THAM GIA trả về tất cả các bản ghi phù hợp từ cả hai bảng

Nó có thể phát hiện các bản ghi không khớp trong bảng đã tham gia. Nó trả về giá trị NULL cho các bản ghi của bảng đã tham gia nếu không tìm thấy kết quả khớp

Nghe có vẻ khó hiểu?

CHỖ NỐI BÊN TRÁI

Giả sử bây giờ bạn muốn lấy tiêu đề của tất cả các bộ phim cùng với tên của các thành viên đã thuê chúng. Rõ ràng là một số phim chưa được ai thuê. Chúng tôi chỉ có thể sử dụng LEFT JOIN cho mục đích

Tham gia mysql nơi không khớp

 

LEFT JOIN trả về tất cả các hàng từ bảng bên trái ngay cả khi không tìm thấy hàng phù hợp trong bảng bên phải. Trường hợp không tìm thấy kết quả phù hợp trong bảng bên phải, NULL được trả về

SELECT A.`title` , B.`first_name` , B.`last_name`
FROM `movies` AS A
LEFT JOIN `members` AS B
ON B.`movie_id` = A.`id`

Thực thi đoạn script trên trong bàn làm việc của MySQL mang lại. Bạn có thể thấy rằng trong kết quả trả về được liệt kê bên dưới đối với các phim không được thuê, trường tên thành viên có giá trị NULL. Điều đó có nghĩa là không có thành viên phù hợp nào tìm thấy bảng thành viên cho bộ phim cụ thể đó





























title
















first_name
















last_name




































ASSASSIN'S CREED: EMBERS
















Adam
















Smith




































Real Steel(2012)
















Ravi
















Kumar




































Safe (2012)
















Susan
















Davidson




































Deadline(2009)
















Jenny
















Adrianna




































Marley and me
















Lee
















Pong




































Alvin and the Chipmunks
















NULL
















NULL




































The Adventures of Tin Tin
















NULL
















NULL




































Safe House(2012)
















NULL
















NULL




































GIA
















NULL
















NULL




































The Dirty Picture
















NULL
















NULL





























Note: Null is returned for non-matching rows on right

QUYỀN THAM GIA

RIGHT JOIN rõ ràng là đối lập với LEFT JOIN. RIGHT JOIN trả về tất cả các cột từ bảng bên phải ngay cả khi không tìm thấy hàng phù hợp trong bảng bên trái. Trường hợp không tìm thấy kết quả phù hợp trong bảng bên trái, NULL được trả về

Trong ví dụ của chúng ta,  giả sử rằng bạn cần lấy tên của các thành viên và phim do họ thuê. Bây giờ chúng tôi có một thành viên mới chưa thuê bất kỳ bộ phim nào

Tham gia mysql nơi không khớp

SELECT  A.`first_name` , A.`last_name`, B.`title`
FROM `members` AS A
RIGHT JOIN `movies` AS B
ON B.`id` = A.`movie_id`

Thực thi đoạn script trên trong bàn làm việc của MySQL sẽ cho kết quả như sau

________số 8

Mệnh đề “ON” và “USING”

Trong các ví dụ về truy vấn THAM GIA ở trên, chúng ta đã sử dụng mệnh đề ON để khớp các bản ghi giữa các bảng

Mệnh đề USING cũng có thể được sử dụng cho mục đích tương tự. Sự khác biệt với USING là nó cần phải có tên giống hệt nhau cho các cột phù hợp trong cả hai bảng

Trong bảng “phim” cho đến nay, chúng tôi đã sử dụng khóa chính của nó với tên “id”. Chúng tôi đã gọi tương tự trong bảng "thành viên" với tên "movie_id"

Hãy đổi tên bảng “phim” trường “id” thành tên “movie_id”. Chúng tôi làm điều này để có tên trường phù hợp giống hệt nhau

ALTER TABLE `movies` CHANGE `id` `movie_id` INT( 11 ) NOT NULL AUTO_INCREMENT;

Tiếp theo, hãy sử dụng USING với ví dụ LEFT JOIN ở trên





























id
















title
















 
















id
















first_name
















last_name
















movie_id




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















1
















Adam
















Smith
















1




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















2
















Ravi
















Kumar
















2




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















3
















Susan
















Davidson
















5




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















4
















Jenny
















Adrianna
















8




































1
















ASSASSIN'S CREED: EMBERS
















Animations
















6
















Lee
















Pong
















10




































2
















Real Steel(2012)
















Animations
















1
















Adam
















Smith
















1




































2
















Real Steel(2012)
















Animations
















2
















Ravi
















Kumar
















2




































2
















Real Steel(2012)
















Animations
















3
















Susan
















Davidson
















5




































2
















Real Steel(2012)
















Animations
















4
















Jenny
















Adrianna
















8




































2
















Real Steel(2012)
















Animations
















6
















Lee
















Pong
















10




































3
















Alvin and the Chipmunks
















Animations
















1
















Adam
















Smith
















1




































3
















Alvin and the Chipmunks
















Animations
















2
















Ravi
















Kumar
















2




































3
















Alvin and the Chipmunks
















Animations
















3
















Susan
















Davidson
















5




































3
















Alvin and the Chipmunks
















Animations
















4
















Jenny
















Adrianna
















8




































3
















Alvin and the Chipmunks
















Animations
















6
















Lee
















Pong
















10




































4
















The Adventures of Tin Tin
















Animations
















1
















Adam
















Smith
















1




































4
















The Adventures of Tin Tin
















Animations
















2
















Ravi
















Kumar
















2




































4
















The Adventures of Tin Tin
















Animations
















3
















Susan
















Davidson
















5




































4
















The Adventures of Tin Tin
















Animations
















4
















Jenny
















Adrianna
















8




































4
















The Adventures of Tin Tin
















Animations
















6
















Lee
















Pong
















10




































5
















Safe (2012)
















Action
















1
















Adam
















Smith
















1




































5
















Safe (2012)
















Action
















2
















Ravi
















Kumar
















2




































5
















Safe (2012)
















Action
















3
















Susan
















Davidson
















5




































5
















Safe (2012)
















Action
















4
















Jenny
















Adrianna
















8




































5
















Safe (2012)
















Action
















6
















Lee
















Pong
















10




































6
















Safe House(2012)
















Action
















1
















Adam
















Smith
















1




































6
















Safe House(2012)
















Action
















2
















Ravi
















Kumar
















2




































6
















Safe House(2012)
















Action
















3
















Susan
















Davidson
















5




































6
















Safe House(2012)
















Action
















4
















Jenny
















Adrianna
















8




































6
















Safe House(2012)
















Action
















6
















Lee
















Pong
















10




































7
















GIA
















18+
















1
















Adam
















Smith
















1




































7
















GIA
















18+
















2
















Ravi
















Kumar
















2




































7
















GIA
















18+
















3
















Susan
















Davidson
















5




































7
















GIA
















18+
















4
















Jenny
















Adrianna
















8




































7
















GIA
















18+
















6
















Lee
















Pong
















10




































8
















Deadline(2009)
















18+
















1
















Adam
















Smith
















1




































8
















Deadline(2009)
















18+
















2
















Ravi
















Kumar
















2




































8
















Deadline(2009)
















18+
















3
















Susan
















Davidson
















5




































8
















Deadline(2009)
















18+
















4
















Jenny
















Adrianna
















8




































8
















Deadline(2009)
















18+
















6
















Lee
















Pong
















10




































9
















The Dirty Picture
















18+
















1
















Adam
















Smith
















1




































9
















The Dirty Picture
















18+
















2
















Ravi
















Kumar
















2




































9
















The Dirty Picture
















18+
















3
















Susan
















Davidson
















5




































9
















The Dirty Picture
















18+
















4
















Jenny
















Adrianna
















8




































9
















The Dirty Picture
















18+
















6
















Lee
















Pong
















10




































10
















Marley and me
















Romance
















1
















Adam
















Smith
















1




































10
















Marley and me
















Romance
















2
















Ravi
















Kumar
















2




































10
















Marley and me
















Romance
















3
















Susan
















Davidson
















5




































10
















Marley and me
















Romance
















4
















Jenny
















Adrianna
















8




































10
















Marley and me
















Romance
















6
















Lee
















Pong
















10




























0

Ngoài việc sử dụng BẬT và SỬ DỤNG với THAM GIA, bạn có thể sử dụng nhiều mệnh đề MySQL khác như GROUP BY, WHERE và thậm chí các hàm như SUM, AVG, v.v.

Tại sao chúng ta nên sử dụng phép nối?

Bây giờ bạn có thể nghĩ, tại sao chúng ta sử dụng THAM GIA khi chúng ta có thể thực hiện cùng một tác vụ chạy truy vấn. Đặc biệt nếu bạn có một số kinh nghiệm về lập trình cơ sở dữ liệu, bạn biết rằng chúng ta có thể chạy từng truy vấn một, sử dụng đầu ra của từng truy vấn liên tiếp. Tất nhiên, điều đó là có thể. Nhưng khi sử dụng THAM GIA, bạn có thể hoàn thành công việc bằng cách chỉ sử dụng một truy vấn với bất kỳ tham số tìm kiếm nào. Mặt khác, MySQL có thể đạt được hiệu suất tốt hơn với THAM GIA vì nó có thể sử dụng Lập chỉ mục. Chỉ cần sử dụng một truy vấn THAM GIA thay vì chạy nhiều truy vấn sẽ làm giảm chi phí máy chủ. Thay vào đó, sử dụng nhiều truy vấn dẫn đến nhiều chuyển dữ liệu hơn giữa MySQL và các ứng dụng (phần mềm). Hơn nữa, nó cũng yêu cầu nhiều thao tác dữ liệu hơn ở cuối ứng dụng

Loại liên kết nào được sử dụng để tìm dữ liệu không khớp từ bảng?

Loại liên kết nào được sử dụng để tìm dữ liệu không khớp từ bảng? . LEFT JOIN is used; this will return ALL rows from Table1 , regardless of whether or not there is a matching row in Table2 .

Làm cách nào để nối hai bảng trong MySQL với mệnh đề WHERE?

trả lời. Tham gia hai bảng trong SQL có thể được thực hiện theo bốn cách chính. Inner Join (trả về các hàng có cột phù hợp), Left Join (TẤT CẢ bản ghi trong bảng bên trái và bản ghi phù hợp trong bảng bên phải), Right Join (TẤT CẢ bản ghi trong bảng bên phải và bản ghi phù hợp trong bảng bên trái) và Union (xóa

Cái nào trong số các phép nối thậm chí sẽ hiển thị các hàng chưa khớp?

Nối ngoài so với. Trong phép nối ngoài, các hàng chưa khớp trong một hoặc cả hai bảng có thể được trả về.

Làm cách nào để nhận các bản ghi khớp và chưa khớp từ hai bảng trong MySQL?

Làm cách nào tôi có thể lấy các bản ghi khớp và không khớp từ hai bảng trong SQL? . select [ selecting columns] From table1 Right OUTER JOIN table2 ON(table1. SQL> chọn e. chọn [ chọn cột] Từ bảng1 Phải NGOÀI THAM GIA bảng2 BẬT(bảng1.