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

ON في MySQL باستخدام USING؟

عادةً، نستخدم ON في MySQL. في الاتصال، نستخدم ON في مجموعة من الأعمدة. عندما تشترك إثنتان من الجداول في نفس الاسم للأعمدة المربوطة، يكون USING مفيدًا.

مثال مفتوح.

إنشاء جدولنا الأول.

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

إنشاء الجدول الثاني.

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

الآن دعونا نضيف القيود.

mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK);
Records: 0 Duplicates: 0 Warnings: 0

أضف السجلات إلى الجدول الثاني.

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

أظهر جميع السجلات.

mysql> SELECT * from PrimaryTableDemo;

إليك الناتج.

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

الآن، قم بإضافة السجلات إلى الجدول الأول.

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

الآن دعونا نعرض جميع السجلات في الجدول الأول.

mysql> SELECT * from ForeignTableDemo;

هذا هو الناتج.

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

إليك استعلام الاتصال المباشر الذي يظهر السجلات التي تتطابق فقط، ونحن نستخدمه هنا.

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

إليك الناتج.

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

مثال على الاستخدام.

إليك مثال على استخدام USING في MySQL، حيث يتم عرض السجلات التي يحتوي على FK = 1.

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

هذا هو الناتج.

+----+----+----+------+---------+
|FK   |Id   |Name  |Address      |
+----+----+----+------+---------+
|    |    |John|    US          |
+----+----+----+------+---------+
1 row in set (0.09 sec)
أنت قد تحب