sql >> Databasteknik >  >> RDS >> Mysql

Hur väljer man distinkta par i MySQL join (samma tabell) med transitivitet?

Gruppera bara på ena sidan och ta MIN() av den andra:

SELECT   MIN(a.ID) a, b.ID b
FROM     mytable a JOIN mytable b ON b.text = a.text AND b.ID > a.ID
GROUP BY b.ID

Se den på sqlfiddle .




  1. MySQL får alla berörda rader för flera påståenden i en fråga

  2. Hur använder man Oracles LISTAGG-funktion med ett unikt filter?

  3. Vad betyder pooling=false i en MySQL-anslutningssträng?

  4. Ange specifika fält med Sequelize (NodeJS) istället för *