Mysql
 sql >> база данни >  >> RDS >> Mysql

Решение за намиране на дублирани записи, включващи ППИ и взаимоотношения родител-дете

Следният SQL изглежда върши номера

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' )
  )
"

С ActiveRecord можете да получите този резултат, като използвате select_value :

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

Не съм сигурен обаче за ефективността



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. актуализира колоната на таблицата след вмъкване на нов запис с помощта на MySQL тригери

  2. Времева сложност на сортиране на база данни

  3. Генерирайте таблица DDL чрез заявка на MySQL и SQL Server

  4. mysql рекурсивна(дърво) родителска дъщерна категория

  5. копирайте една колона от една таблица в друга