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

MYSQL:Избягване на декартов продукт на повтарящи се записи при самостоятелно присъединяване

select a_numbered.id, a_numbered.identifier, b_numbered.id from 
(
select a.*,
       case 
          when @identifier = a.identifier then @rownum := @rownum + 1
          else @rownum := 1
       end as rn,
       @identifier := a.identifier
  from a
  join (select @rownum := 0, @identifier := null) r
order by a.identifier

) a_numbered join (
select b.*,
       case 
          when @identifier = b.identifier then @rownum := @rownum + 1
          else @rownum := 1
       end as rn,
       @identifier := b.identifier
  from b
  join (select @rownum := 0, @identifier := null) r
order by b.identifier

) b_numbered 
on a_numbered.rn=b_numbered.rn and a_numbered.identifier=b_numbered.identifier



  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 PHP

  2. PHP MYSQL UPDATE ако съществува или INSERT, ако не?

  3. Python MySQL избягва специални символи

  4. Заявка за изчисляване на сумата от разстояние (дължина, ширина) в последователни редове в Mysql

  5. Self Joins в Mysql... Как да се присъединя самостоятелно към тази таблица?