Csatlakozzon sql

Csatlakozzon sql

JOIN parancs az SQL-lekérdezés kombinálni választás több táblából egyetlen eredmény meg, és az így kapott mintát minden területén az összes táblát vesz részt a lekérdezésben. Nézzük meg közelebbről a JOIN használatát az SQL-ben.

Több lehetőség van a JOIN kérésére. a legnépszerűbb, nevezetesen INNER JOIN:

SELECT * FROM `users` INNER JOIN` előfizetők` ON `users`.`email` =` subscribers`.`email`

Hasonló kéréssel elolvastam az összes rekordot, ahol a webhely minden felhasználója, akik szintén előfizetők, bekerülnek a mintába.

Az INNER JOIN sajátossága az, hogy az eredmény magában foglalja az összes értéket tartalmazó mezőt. A rekordok száma éppúgy megfelel mindkét asztal feltételeinek.

Most lépjünk át a JOIN következő verziójára. pontosabban LEFT OUTER JOIN:

SELECT * FROM `users` LEFT OUTER JOIN 'feliratkozók` ON` users`.`email` = `subscribers`.`email`

Ennek a lekérdezésnek az a sajátossága, hogy a kiválasztás eredménye olyan rekordokat tartalmaz, amelyek megfelelnek a bal oldali táblázatnak. Ha megfelelnek a megfelelő táblázat feltételeinek, akkor ez megegyezik az INNER JOIN-val. egyébként a jobb oldali táblázatban lévő értékek helyett a NULL.

Most menj a RIGHT OUTER JOIN:

SELECT * FROM `users` JOBB KÜLSŐ JOIN 'előfizetők` ON `users` .`email` =` subscribers`.`email`

Tükrözés a BAL KÜLSŐ CSATLAKOZ. most NULL van jelen az első táblában, vagyis a bal oldalon.

És végül az utolsó típusú JOIN a CROSS JOIN:

SELECT * FROM `felhasználói` CROSS JOIN` vezetékeket`

Ez a lekérdezés két táblázat összes lehetséges kombinációját eredményezi. Ebben a lekérdezésben az eredményül kapott rekordok száma a rekordok számának szorzása mindkét táblában.

Még nem mondtam el a FULL OUTER JOIN-ot. amelyet a MySQL nem támogat. Véleményem szerint azonban erre nincs szükség. Különlegessége, hogy egy olyan karakterláncot ad ki, amelyben legalább egy meccs van a táblák bármelyikével. Ennek megfelelően a másik tábla (amelyben nincs egyezség a feltétellel), a NULL megy. Valójában ez a LEFT OUTER JOIN és a RIGHT OUTER JOIN kombinációja:

SELECT * FROM `users` bal külső JOIN` subscribers` ON` users`.`email` = `subscribers`.`email` UNION SELECT * FROM` users` jobb külső JOIN` subscribers` ON ​​`users`.`email` = `előfizetők` .`email`

Szóval elmondtam a JOIN SQL összes fajtáját. Érdemes megjegyezni, hogy a téma nagyon összetett, és az első alkalommal ritkán érthető. Ezért javasoljuk, hogy mindig nézze meg, hogyan működnek ezek a lekérdezések a táblázatok példájával (ha nem léteznek, hozza létre őket). Ellenőrizze a JOIN összes fajtáját, és nézze meg, hogy különböznek egymástól.

Ajánlja ezt a cikket ismerőseinek:

Ha tetszett a webhely, akkor adjon hozzá egy linket (a webhelyén, a fórumon, a kapcsolattartóban):

Ez így néz ki:

  • A fórumok linkjeinek BB-kódja (például az aláíráshoz):
  • És hogyan rendezi az adatok kimenetét? Itt kombináljuk a két kérelmet egy szakszervezettel, és hogyan adjuk meg az ORDER BY-ot, és milyen kérésre és hogyan adjuk meg azt?

    A lekérdezés legvégén megadhatja a JOIN-ok után. Azt is meghatározza mind a WHERE, mind a LIMIT.