sql >> Databasteknik >  >> RDS >> Mysql

MYSQL:Undviker kartesisk produkt av att upprepa poster vid självanslutning

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. En datamodell för Marathon Training App

  2. PHP Varning:mysqli::query():Det gick inte att hämta mysqli

  3. Oracle:DDL och återställning av transaktioner

  4. PostgreSQL-borttagning med inre koppling