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

MySQL:suddivisione rapida dei tipi di join

Sulla base del tuo commento, è meglio trovare definizioni semplici di ciascuno in W3Schools La prima riga di ogni tipo fornisce una breve spiegazione del tipo di join

  • JOIN:restituisce le righe quando c'è almeno una corrispondenza in entrambe le tabelle
  • LEFT JOIN:restituisce tutte le righe dalla tabella di sinistra, anche se non ci sono corrispondenze nella tabella di destra
  • RIGHT JOIN:restituisce tutte le righe dalla tabella di destra, anche se non ci sono corrispondenze nella tabella di sinistra
  • FULL JOIN:restituisce le righe quando c'è una corrispondenza in una delle tabelle

FINE MODIFICA

In poche parole, l'esempio separato da virgole che hai fornito di

SELECT * FROM a, b WHERE b.id = a.beeId AND ...

sta selezionando ogni record dalle tabelle aeb con le virgole che separano le tabelle, questo può essere utilizzato anche in colonne come

SELECT a.beeName,b.* FROM a, b WHERE b.id = a.beeId AND ...

Quindi ottiene le informazioni indicate nella riga in cui la colonna b.id e la colonna a.beeId hanno una corrispondenza nel tuo esempio. Quindi nel tuo esempio otterrà tutte le informazioni dalle tabelle aeb in cui b.id è uguale a a. beeId. Nel mio esempio otterrà tutte le informazioni dalla tabella b e solo le informazioni dalla colonna a.beeName quando b.id è uguale a a.beeId. Nota che esiste anche una clausola AND, questo aiuterà a perfezionare i tuoi risultati.

Per alcuni semplici tutorial e spiegazioni su mySQL join e left join, dai un'occhiata ai tutorial di Tizag su MySQL. Puoi anche controllare il sito web di Keith J. Brown per ulteriori informazioni sui join è anche abbastanza buono.

Spero che questo ti aiuti