শৃঙ্খলিত টেবিলের ধারা
এখন ধরুন ব্যবহারকারীরা নির্দিষ্ট শহরে বাস করে, আর এই শহরগুলি বিভিন্ন দেশে অবস্থিত। এই ক্ষেত্রে সংরক্ষণের জন্য আমাদের প্রয়োজন হবে ইতিমধ্যে তিনটি টেবিলের: ব্যবহারকারীরা শহরগুলির সাথে লিঙ্ক থাকবে, আর শহরগুলি - দেশগুলির সাথে। এক্ষেত্রে আমাদের প্রয়োজন হবে না ব্যবহারকারী এবং দেশের মধ্যে লিঙ্কের ক্ষেত্র - কারণ ব্যবহারকারীরা ইতিমধ্যেই দেশগুলির সাথে লিঙ্ক থাকবে শহর এবং দেশের লিঙ্কের মাধ্যমে।
আসুন আমাদের টেবিলগুলি দেখি। দেশগুলির টেবিল:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
শহরগুলির টেবিল:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
ব্যবহারকারীদের টেবিল অপরিবর্তিত থাকবে:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
কোয়েরি
ব্যবহারকারীদের তাদের শহর এবং দেশসহ পেতে, আমাদের দুটি জয়িন করতে হবে: প্রথমটি ব্যবহারকারীদের সাথে শহরগুলি যোগ করবে, এবং দ্বিতীয়টি - শহরগুলির সাথে দেশগুলি:
SELECT
users.name,
cities.name as city_name,
countries.name as country_name
FROM
users
LEFT JOIN cities ON cities.id=users.city_id
LEFT JOIN countries ON countries.id=cities.country_id
ব্যবহারিক কাজ
ধরুন পণ্যগুলি একটি নির্দিষ্ট উপবিভাগের অন্তর্গত, এবং উপবিভাগগুলি একটি নির্দিষ্ট বিভাগের অন্তর্গত। সংরক্ষণের কাঠামোটি লিখুন।
একটি কোয়েরি লিখুন যা পণ্যগুলি, তাদের উপবিভাগ এবং বিভাগসহ নিয়ে আসবে।
একটি কোয়েরি লিখুন যা উপবিভাগগুলি তাদের বিভাগসহ নিয়ে আসবে।