Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa khỏi nhiều bảng bằng cách sử dụng thứ tự theo và giới hạn

Làm điều đó bằng cách sử dụng JOIN với một lựa chọn con để nhận được id cao nhất từ ​​my_rel_table

DELETE my_rel_table, my_photo_table
FROM my_rel_table 
INNER JOIN 
(
    SELECT MAX(id) AS MaxId
    FROM my_rel_table 
    WHERE relid = 1 
    AND type = 1
) Sub1
ON my_rel_table.id = Sub1.MaxId
LEFT OUTER JOIN my_photo_table ON my_photo_table.typeid = my_rel_table.typeid
WHERE my_rel_table.relid = 1 
AND my_rel_table.type = 1

Không được kiểm tra trực tiếp vì tôi không có dữ liệu kiểm tra!

CHỈNH SỬA - Một vài lần cố gắng để đạt được top 5, nhưng một lần nữa không được kiểm tra

DELETE my_rel_table, my_photo_table
FROM my_rel_table 
INNER JOIN 
(
    SELECT id
    FROM my_rel_table 
    WHERE relid = 1 
    AND type = 1
    ORDER BY id DESC
    LIMIT 5
) Sub1
ON my_rel_table.id = Sub1.id
LEFT OUTER JOIN my_photo_table ON my_photo_table.typeid = my_rel_table.typeid
WHERE my_rel_table.relid = 1 
AND my_rel_table.type = 1

Hoặc một cách khác.

DELETE my_rel_table, my_photo_table
FROM my_rel_table 
INNER JOIN 
(
    SELECT id, @Counter:[email protected]+1 AS ItemCounter
    FROM my_rel_table 
    CROSS JOIN (SELECT @Counter:=0) Sub1
    WHERE relid = 1 
    AND type = 1
    ORDER BY id DESC
) Sub1
ON my_rel_table.id = Sub1.id
AND Sub1.ItemCounter <= 5
LEFT OUTER JOIN my_photo_table ON my_photo_table.typeid = my_rel_table.typeid
WHERE my_rel_table.relid = 1 
AND my_rel_table.type = 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các truy vấn liên quan đến hiệu suất Phalcon

  2. Liệt kê tất cả ID khách hàng và họ của những người đã thực hiện nhiều hơn 2 đơn đặt hàng

  3. Một chương trình C # có thể đọc một tệp văn bản vào bộ nhớ và sau đó chuyển đối tượng đó đến một phương thức yêu cầu tên tệp không?

  4. Hàm TAN () MySQL - Trả về tiếp tuyến của một giá trị trong MySQL

  5. Bạn có thể định nghĩa bảng chữ trong SQL không?