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:
É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.