sql >> Database >  >> RDS >> Mysql

Is "Waar IN" met meerdere kolommen gedefinieerd in Standard SQL?

Standaard en draagbare SQL zou BESTAAN.. en is semantisch hetzelfde IN

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

De IN met meerdere kolommen is in ieder geval niet overdraagbaar naar SQL Server of Sybase.

Andere opmerkingen:

  • Voor een JOIN is mogelijk een DISTINCT vereist en dit is niet hetzelfde als IN of EXISTS.
  • De laatste optie is INTERSECT, die minder vaak wordt ondersteund en werkt als IN/EXISTS
  • IIRC sommige prehistorische MySQL-versies (3.x?) ondersteunden de correlatie voor EXISTS niet


  1. Vensterfuncties of algemene tabeluitdrukkingen:tel vorige rijen binnen bereik

  2. Laravel klaagt over zoekopdracht met dubbele benoemde parameters

  3. MariaDB numerieke functies (volledige lijst)

  4. Hoe roep ik MySQL-opgeslagen procedures van Perl aan?