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

Giải pháp để tìm các bản ghi trùng lặp liên quan đến STI và mối quan hệ cha mẹ-con cái

SQL sau dường như thực hiện được mẹo

big_query = "
  SELECT EXISTS (
    SELECT 1
    FROM buyables b1
      JOIN buyables b2
        ON b1.shop_week_id = b2.shop_week_id
        AND b1.location_id = b2.location_id
    WHERE
      b1.parent_id != %1$d
      AND b2.parent_id = %1$d
      AND b1.type = 'Item'
      AND b2.type = 'Item'
    GROUP BY b1.parent_id
    HAVING COUNT(*) = ( SELECT COUNT(*) FROM buyables WHERE parent_id = %1$d AND type = 'Item' )
  )
"

Với ActiveRecord, bạn có thể nhận được kết quả này bằng cách sử dụng select_value :

class Basket < Buyable
  def has_duplicate
    !!connection.select_value( big_query % id )
  end
end

Tuy nhiên, tôi không chắc lắm về hiệu suất



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. giản đồ cơ sở dữ liệu cho các thuộc tính sản phẩm

  2. Kết nối Android với MS SQL SERVER 2008

  3. Cách phân tầng vẫn tồn tại bằng JPA / EclipseLink

  4. đăng nhập băm md5 bằng php và mysql

  5. thay thế cho mysql_field_name trong mysqli