sql >> Database teknologi >  >> RDS >> Mysql

Er "Where IN" med flere kolonner defineret i Standard SQL?

Standard og bærbar SQL ville være EXISTS.. og er semantisk den samme IN

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

Multi-kolonne IN er i det mindste ikke portabel til SQL Server eller Sybase.

Andre bemærkninger:

  • ET JOIN kræver muligvis en DISTINCT og er ikke det samme som IN eller EKSISTERER.
  • Den sidste mulighed er INTERSECT, som er mindre almindeligt understøttet og fungerer som IN/EXISTS
  • IIRC nogle forhistoriske MySQL-versioner (3.x?) understøttede ikke korrelationen for EXISTS


  1. MYSQL-forespørgslen udføres meget langsomt

  2. Hvad er en genereret kolonne?

  3. Opdater din PostgreSQL-adgangskode i Linux

  4. MySQL:bestil efter inde i gruppen efter