sql >> Databasteknik >  >> RDS >> Mysql

Är "Where IN" med flera kolumner definierade i Standard SQL?

Standard och portabel SQL skulle vara FINNS.. och är semantiskt samma IN

SELECT *
FROM requests R
WHERE 
    EXISTS (SELECT *
           FROM node n
           WHERE r.id = n.nid AND r.langid = n.langid
           )

Flerkolumn IN är inte portabel till SQL Server eller Sybase åtminstone.

Övriga anmärkningar:

  • En JOIN kan kräva en DISTINCT och är inte detsamma som IN eller FINNS.
  • Det sista alternativet är INTERSECT som stöds mindre vanligt och fungerar som IN/EXISTS
  • IIRC vissa förhistoriska MySQL-versioner (3.x?) stödde inte korrelationen för EXISTS


  1. PHP-databasanslutningsklass

  2. En datamodell för djurvård

  3. Vad är rad-, sid- och tabelllås? Och när de förvärvas?

  4. Använder SQL Server som bildarkiv