Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm giá trị trùng lặp trong bảng MySQL bằng JOIN

Sử dụng SELF JOIN (bảng tự nối với chính nó) để tìm các hàng có giá trị trùng lặp ở cột cụ thể.

Dữ liệu mẫu

mysql> SELECT * FROM stock_item;
+------------+----------+
| item_name  | quantity |
+------------+----------+
| Calculator | 89       |
| Notebooks  | 40       |
| Pencil     | 40       |
| Pens       | 32       |
| Shirts     | 29       |
| Shoes      | 29       |
| Trousers   | 29       |
+------------+----------+

Truy vấn tìm trùng lặp cột quantity

mysql> SELECT DISTINCT g.item_name, g.quantity
FROM stock_item g
INNER JOIN stock_item b ON g.quantity = b.quantity
WHERE g.item_name <> b.item_name;

Kết quả

+-----------+----------+
| item_name | quantity |
+-----------+----------+
| Pencil    | 40       |
| Notebooks | 40       |
| Shoes     | 29       |
| Trousers  | 29       |
| Shirts    | 29       |
+-----------+----------+

Giải thích: Nối bảng với chính nó trên cột quantity, loại trừ trường hợp cùng tên món hàng (g.item_name <> b.item_name). DISTINCT loại bỏ kết quả trùng lặp do cặp (A,B) và (B,A) đều khớp.