কম্পিউটার টিউটোরিয়াল

MySQL-এ CROSS JOIN সঠিকভাবে ব্যবহার করা (কার্টেশিয়ান প্রোডাক্ট)

CROSS JOIN দুটি টেবিলের কার্টেশিয়ান প্রোডাক্ট (সর্ব সম্ভাব্য কোম্বিনেশন) ফেরত দেয়। WHERE ক্লজ ছাড়া এটি সব রো কোম্বাইন করে।

টেবিল ও ডেটা

CREATE TABLE PairDemo (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(20),
    UserRelationshipName VARCHAR(20)
);

INSERT INTO PairDemo (UserName, UserRelationshipName) VALUES
('John', 'James'), ('Carol', 'James'), ('Carol', 'David'), ('Sam', 'David');

CROSS JOIN উদাহরণ: অনুপস্থিত কোম্বিনেশন খুঁজুন

SELECT U.UserName, UR.UserRelationshipName
FROM (
    SELECT DISTINCT UserName FROM PairDemo
) U
CROSS JOIN (
    SELECT DISTINCT UserRelationshipName FROM PairDemo
) UR
WHERE NOT EXISTS (
    SELECT 1 FROM PairDemo P
    WHERE P.UserName = U.UserName
      AND P.UserRelationshipName = UR.UserRelationshipName
);

ফলাফল

+----------+----------------------+
| UserName | UserRelationshipName |
+----------+----------------------+
| Sam      | James                |
| John     | David                |
+----------+----------------------+

ব্যাখ্যা

  • সামগ্রিক ৪×২=৮ কোম্বিনেশন সম্ভব
  • বিদ্যমান ৪ টি বাদ দিয়ে বাকি ২ টি (Missing pairs) দেখানো হয়েছে

সতর্কতা

  • বড় টেবিলে CROSS JOIN খুব ধীর (N×M রো)
  • প্রয়োজনীয় কলামই সিলেক্ট করুন
  • WHERE দিয়ে ফিল্টার করুন
  1. MySQL-এ ডেট ফরম্যাট সঠিকভাবে কনভার্ট করুন

  2. MySQL-এ WITH ROLLUP সঠিকভাবে ব্যবহার করা

  3. MySQL স্টোরড প্রসিডিউরে IF-ELSE শর্ত সঠিকভাবে বাস্তবায়ন

  4. MySQL স্টোরড প্রসিডিউরে DELIMITER সঠিকভাবে ব্যবহার করা