sql >> Databáze >  >> RDS >> Mysql

Vybírejte a seřaďte podle vztahu mnoho k mnoha

Pravděpodobně něco podobného:

SELECT
    a.person_id
FROM
    table AS a,
    table AS b
WHERE
    a.person_id = b.person_id AND
    a.favorite_id = 1 AND
    b.favorite_id = 2
ORDER BY
    ( IF( a.is_main_favorite = "y", 1, 0 )
      +
      IF( b.is_main_favorite = "y", 1, 0 ) ) DESC

Mimochodem:Možná budete chtít do databáze uložit 1/0 místo y/n, takže nebudete potřebovat volání IF



  1. Upgrade na PostgreSQL 11 s logickou replikací

  2. Předávání pole ints do T-SQL uloženého procesu prostřednictvím entity framework

  3. Tipy pro správu zálohování pro TimescaleDB

  4. Použití spojení ke kombinování dat z různých tabulek v PostgreSQL