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

Vyberte řádky z tabulky, kde řádek v jiné tabulce se stejným ID má konkrétní hodnotu v jiném sloupci

Vlastně bych na to nedoporučoval JOIN – nebo spíše bych doporučil „semijoin ", což je koncept relační algebry, který není přímo vyjádřen v SQL. Semijoin je v podstatě spojení, kde chcete načíst záznamy pouze z jedné tabulky, ale s podmínkou, že mají odpovídající záznamy v jiné tabulce.

V zápisu SQL je tento koncept vyjádřen nepřímo pomocí IN doložka , s poddotaz :

SELECT key, value
  FROM comments
 WHERE key IN
        ( SELECT comment_key
            FROM meta
           WHERE value = 1
        )
;

(MySQL to nakonec interně přeloží zpět na semijoin – v podstatě jakési degenerované vnitřní spojení – ale IN klauzule je přirozený způsob, jak ji vyjádřit v surovém SQL.)



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

  2. Ukládání hodnot Lat Lng v MySQL pomocí Spatial Point Type

  3. Tipy pro opravu fragmentace indexu SQL Server

  4. Existuje důvod, proč MySQL nepodporuje FULL OUTER JOINS?