সাধারণত MySQL-এ ON ব্যবহার করা হয়। জয়াইনে কলাম সেটে ON ব্যবহার করা হয়। USING তখন উপকারী হয় যখন দুটি টেবিল একই সঠিক নামের একটি কলাম শেয়ার করে যার ওপর জয়াইন করা হয়।
ON এর উদাহরণ
প্রথম টেবিল তৈরি:
mysql> CREATE table ForeignTableDemo -> ( -> Id int, -> Name varchar(100), -> FK int -> ); Query OK, 0 rows affected (0.47 sec)
দ্বিতীয় টেবিল তৈরি:
mysql> CREATE table PrimaryTableDemo -> ( -> FK int, -> Address varchar(100), -> primary key(FK) -> ); Query OK, 0 rows affected (0.47 sec)
কনস্ট্রেইন্ট যোগ:
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Query OK, 0 rows affected (1.54 sec)
দ্বিতীয় টেবিলে রেকর্ড ইনসার্ট:
mysql> INSERT into PrimaryTableDemo values(1,'US'); Query OK, 1 row affected (0.10 sec) mysql> INSERT into PrimaryTableDemo values(2,'UK'); Query OK, 1 row affected (0.14 sec) mysql> INSERT into PrimaryTableDemo values(3,'Unknown'); Query OK, 1 row affected (0.08 sec)
প্রথম টেবিলে রেকর্ড ইনসার্ট:
mysql> INSERT into ForeignTableDemo values (1,'John',1); Query OK, 1 row affected (0.20 sec) mysql> INSERT into ForeignTableDemo values (2,'Bob',2); Query OK, 1 row affected (0.27 sec)
ON ব্যবহার করে জয়াইন (শুধু মিলে যাওয়া সারি)
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address -> FROM ForeignTableDemo -> JOIN PrimaryTableDemo -> ON ForeignTableDemo.FK = PrimaryTableDemo.FK;
আউটপুট:
+------+------+---------+ | Id | Name | Address | +------+------+---------+ | 1 | John | US | | 2 | Bob | UK | +------+------+---------+ 2 rows in set (0.14 sec)
USING এর উদাহরণ
USING সিনট্যাক্স (FK = 1 যেখানে রেকর্ড দেখাবে):
mysql> SELECT * FROM ForeignTableDemo JOIN PrimaryTableDemo USING(FK) WHERE FK=1;
আউটপুট:
+------+------+------+---------+ | FK | Id | Name | Address | +------+------+------+---------+ | 1 | 1 | John | US | +------+------+------+---------+ 1 row in set (0.09 sec)
মূল পার্থক্য: ON এ কলামের নাম আলাদা হলে কাজ করে (t1.id = t2.fk_id)। USING শুধু তখন কাজ করে যখন দুটি টেবিলে কলামের নাম একই হয় (FK)। USING আউটপুটে জয়াইন কলামটি একবার দেখায়।