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

Vælg rækker fra en tabel, hvor række i en anden tabel med samme id har en bestemt værdi i en anden kolonne

Jeg vil faktisk ikke anbefale et JOIN til dette - eller rettere, jeg vil anbefale et "semijoin ", som er et relationel-algebra-koncept, der ikke er direkte udtrykt i SQL. En semijoin er i bund og grund en join, hvor du kun ønsker at hente poster fra én tabel, men med det forbehold, at de har tilsvarende poster i en anden tabel.

I SQL-notation udtrykkes dette koncept indirekte ved at bruge en IN klausul , med en underforespørgsel :

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

(MySQL vil faktisk ende med at oversætte det tilbage til en semijoin internt - i det væsentlige en slags degenereret indre-join - men IN klausul er den naturlige måde at udtrykke det på i rå SQL.)



  1. Hvordan får man data fra en mysql-database ved hjælp af javascript?

  2. MySQL-forespørgsel returnerer duplikerede rækker

  3. Indlæser Big Data hurtigere

  4. MySQL match() mod() - rækkefølge efter relevans og kolonne?