English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL ON und USING?

Normalerweise verwenden wir in MySQL ON. Bei Verbindungen verwenden wir ON in einer Gruppe von Spalten. Wenn zwei Tabellen sie gemeinsam haben, die vollständig gleichen Namen der verknüpften Spalten, ist USING sehr nützlich.

Beispiel.

Erstellen Sie unsere erste Tabelle.

mysql> CREATE table ForeignTableDemo
   -); (
   -); Id int,
   -); Name varchar(100),
   - ); FK int
   - );

Erstellen Sie die zweite Tabelle.

mysql> CREATE table PrimaryTableDemo
   - ); (
   - ); FK int,
   - ); Address varchar(100),
   - ); primary key(FK)
   - );

Lassen Sie uns nun die Einschränkung hinzufügen.

mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK);
Einträge: 0    Duplikate: 0    Warnungen: 0

Das Protokoll wird in die zweite Tabelle eingefügt.

mysql> INSERT into PrimaryTableDemo values (1,'US');
mysql> INSERT into PrimaryTableDemo values (2,'UK');
mysql> INSERT into PrimaryTableDemo values (3,'Unknown');

Zeige alle Aufzeichnungen.

mysql> SELECT * from PrimaryTableDemo;

Nachstehend ist die Ausgabe.

+----+---------+
| FK | Address |
+----+---------+
|  1 | US      |
|  2 | UK      |
|  3 | Unknown |
+----+---------+
3 rows in set (0.00 sec)

Nun, fügen Sie die Aufzeichnungen in die erste Tabelle ein.

mysql> INSERT into ForeignTableDemo values (1,'John',1);
mysql> INSERT into ForeignTableDemo values (2,'Bob',2);

Lassen Sie uns nun alle Aufzeichnungen der ersten Tabelle anzeigen.

mysql> SELECT * from ForeignTableDemo;

Dies ist die Ausgabe.

+------+------+------+
| Id   | Name | FK   |
+------+------+------+
|    1 | John |    1 |
|    2 | Bob  |    2 |
+------+------+------+
2 rows in set (0.00 sec)

Hier ist eine direkte Verknüpfungssuche, die nur die passenden Zeilen anzeigt. Wir haben das verwendet.

mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address
   - > from ForeignTableDemo
   - > join PrimaryTableDemo
   - > on ForeignTableDemo.FK = PrimaryTableDemo.FK;

Nachstehend ist die Ausgabe.

+------+------+---------+
| Id   | Name | Address |
+------+------+---------+
|    1 | John | US      |
|    2 | Bob  | UK      |
+------+------+---------+
2 rows in set (0.14 sec)

Beispiel zur Verwendung.

Nachstehend ist die Syntax von USING in MySQL gezeigt, wobei FK = 1der Aufzeichnungen.

mysql> select *from ForeignTableDemo join PrimaryTableDemo using(FK) where FK=1;

Dies ist die Ausgabe.

+------+------+------+---------+
| FK   | Id   | Name | Address |
+------+------+------+---------+
|    1 |    1 | John | US      |
+------+------+------+---------+
1 row in set (0.09 sec)