MySQL-এ CROSS JOIN যোগ করা টেবিল থেকে সারিগুলির কার্টেসিয়ান পণ্য প্রদান করে। আসুন একটি টেবিল তৈরি করে একটি উদাহরণ দেখি -
mysql> create table PairDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20), -> UserRelationshipName varchar(20) -> ); Query OK, 0 rows affected (0.56 sec)
উদাহরণ
সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -
mysql> insert into PairDemo(UserName,UserRelationshipName) values('John','James'); Query OK, 1 row affected (0.15 sec) mysql> insert into PairDemo(UserName,UserRelationshipName) values('Carol','James'); Query OK, 1 row affected (0.20 sec) mysql> insert into PairDemo(UserName,UserRelationshipName) values('Carol','David'); Query OK, 1 row affected (0.25 sec) mysql> insert into PairDemo(UserName,UserRelationshipName) values('Sam','David'); Query OK, 1 row affected (0.19 sec)
একটি নির্বাচন বিবৃতি ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -
mysql> select *from PairDemo;
আউটপুট
+--------+----------+----------------------+ | UserId | UserName | UserRelationshipName | +--------+----------+----------------------+ | 1 | John | James | | 2 | Carol | James | | 3 | Carol | David | | 4 | Sam | David | +--------+----------+----------------------+ 4 rows in set (0.00 sec)
CROSS JOIN -
প্রয়োগ করার জন্য নিম্নোক্ত ক্যোয়ারীmysql> SELECT U.UserName, UR.UserRelationshipName -> FROM ( -> (SELECT DISTINCT UserName from PairDemo) U -> CROSS JOIN -> (SELECT DISTINCT UserRelationshipName from PairDemo) UR -> ) WHERE NOT EXISTS ( -> SELECT * FROM PairDemo tbl -> WHERE tbl.UserName = U.UserName -> AND tbl.UserRelationshipName = UR.UserRelationshipName -> ) ;
এখানে আউটপুট রয়েছে যা ক্রস যোগদান -
বাস্তবায়নকারী উপরের প্রশ্নের ফলাফল প্রদর্শন করে+----------+----------------------+ | UserName | UserRelationshipName | +----------+----------------------+ | Sam | James | | John | David | +----------+----------------------+ 2 rows in set (0.03 sec)