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

MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

হ্যাঁ, এটি সম্ভব। সিনট্যাক্স:

select * from yourTableName1,yourTableName2;

প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable1 (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );
Query OK, 0 rows affected (0.54 sec)

রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable1 values(),(),();
Query OK, 3 rows affected (0.14 sec)
Records: 3  Duplicates: 0  Warnings: 0

প্রথম টেবিলের রেকর্ড:

mysql> select * from DemoTable1;

আউটপুট:

+----+
| Id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.00 sec)

দ্বিতীয় টেবিল তৈরি করি:

mysql> create table DemoTable2 (
    -> FirstName varchar(10)
    -> );
Query OK, 0 rows affected (0.58 sec)

রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable2 values('Chris'),('David'),('Sam');
Query OK, 3 rows affected (0.10 sec)
Records: 3  Duplicates: 0  Warnings: 0

দ্বিতীয় টেবিলের রেকর্ড:

mysql> select * from DemoTable2;

আউটপুট:

+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Sam       |
+-----------+
3 rows in set (0.00 sec)

দুটি টেবিল থেকে SELECT (কারtezিয়ান প্রোডাক্ট/ক্রস জয়েন):

mysql> select Id,FirstName from DemoTable1,DemoTable2;

আউটপুট (৩x৩=৯ সারি):

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | Chris     |
|  2 | Chris     |
|  3 | Chris     |
|  1 | David     |
|  2 | David     |
|  3 | David     |
|  1 | Sam       |
|  2 | Sam       |
|  3 | Sam       |
+----+-----------+
9 rows in set (0.00 sec)

সতর্কতা: এটি কারtezিয়ান প্রোডাক্ট (CROSS JOIN) তৈরি করে। সাধারণত JOIN কন্ডিশন (ON) ব্যবহার করা উচিত।

  1. MySQL-এ UNION SELECT এবং IN ক্লজ একসাথে ব্যবহার

  2. MySQL-এ UNION ALL ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে রেকর্ড ইনসার্ট করা

  3. MySQL-এ UNION ALL এবং INSERT INTO SELECT ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে ডেটা ইনসার্ট করুন

  4. MySQL-এ একসাথে দুটি কলাম আপডেট করা (সিঙ্গল কোয়েরি)