English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Di solito, usiamo ON in MySQL. Nella join, usiamo ON su un insieme di colonne. Quando due tabelle condividono il nome della colonna completamente uguale, USING è molto utile.
Esempio aperto.
Creiamo la nostra prima tabella.
mysql> CREATE table ForeignTableDemo -> ( -> Id int, -> Name varchar(100), - > FK int - > );
Creiamo la seconda tabella.
mysql> CREATE table PrimaryTableDemo - > ( - > FK int, - > Indirizzo varchar(100), - > primary key(FK) - > );
Ora aggiungiamo la restrizione.
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Records: 0 Duplicates: 0 Warnings: 0
Aggiungiamo le registrazioni alla seconda tabella.
mysql> INSERT into PrimaryTableDemo values(1, 'US'); mysql> INSERT into PrimaryTableDemo values(2, 'UK'); mysql> INSERT into PrimaryTableDemo values(3, 'Unknown');
Visualizza tutti i record.
mysql> SELECT * from PrimaryTableDemo;
Di seguito è riportato l'output.
+----+---------+ | FK | Indirizzo | +----+---------+ | 1 | US | | 2 | UK | | 3 | Sconosciuto | +----+---------+ 3 righe nel set (0.00 sec)
Ora, aggiungiamo le registrazioni alla prima tabella.
mysql> INSERT into ForeignTableDemo values (1, 'John', 1); mysql> INSERT into ForeignTableDemo values (2, 'Bob', 2);
Ora mostriamo tutti i record della prima tabella.
mysql> SELECT * from ForeignTableDemo;
Questo è l'output.
+------+--------+--------+------+ |Id |Name |FK | +------+--------+--------+------+ | 1 |John | 1 | | 2 |Bob | 2 | +------+--------+--------+------+ 2 rows in set (0.00 sec)
Di seguito è riportato un esempio di query di connessione diretta che mostra solo le righe corrispondenti. L'abbiamo utilizzato qui.
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address - > from ForeignTableDemo - > join PrimaryTableDemo - > on ForeignTableDemo.FK = PrimaryTableDemo.FK;
Di seguito è riportato l'output.
+------+--------+--------+------+---------+ |Id |Name |Address | +------+--------+--------+------+---------+ | 1 |John |US | | 2 |Bob |UK | +------+--------+--------+------+---------+ 2 rows in set (0.14 sec)
Esempio di utilizzo.
Di seguito è riportato un esempio di utilizzo della sintassi USING in MySQL, che mostra i record con FK = 1.
mysql> select * from ForeignTableDemo join PrimaryTableDemo using(FK) where FK=1;
Questo è l'output.
+------+--------+--------+------+---------+ |FK |Id |Name |Address | +------+--------+--------+------+---------+ | 1 | 1 |John |US | +------+--------+--------+------+---------+ 1 row in set (0.09 sec)