শৃঙ্খলিত টেবিলের ধারা

এখন ধরুন ব্যবহারকারীরা নির্দিষ্ট শহরে বাস করে, আর এই শহরগুলি বিভিন্ন দেশে অবস্থিত। এই ক্ষেত্রে সংরক্ষণের জন্য আমাদের প্রয়োজন হবে ইতিমধ্যে তিনটি টেবিলের: ব্যবহারকারীরা শহরগুলির সাথে লিঙ্ক থাকবে, আর শহরগুলি - দেশগুলির সাথে। এক্ষেত্রে আমাদের প্রয়োজন হবে না ব্যবহারকারী এবং দেশের মধ্যে লিঙ্কের ক্ষেত্র - কারণ ব্যবহারকারীরা ইতিমধ্যেই দেশগুলির সাথে লিঙ্ক থাকবে শহর এবং দেশের লিঙ্কের মাধ্যমে।

আসুন আমাদের টেবিলগুলি দেখি। দেশগুলির টেবিল:

countries
id name
1 country1
2 country2

শহরগুলির টেবিল:

cities
id name country_id
1 city1 1
2 city2 1
3 city3 2

ব্যবহারকারীদের টেবিল অপরিবর্তিত থাকবে:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

কোয়েরি

ব্যবহারকারীদের তাদের শহর এবং দেশসহ পেতে, আমাদের দুটি জয়িন করতে হবে: প্রথমটি ব্যবহারকারীদের সাথে শহরগুলি যোগ করবে, এবং দ্বিতীয়টি - শহরগুলির সাথে দেশগুলি:

sqlSELECT 
  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

ব্যবহারিক কাজ

Задание 1

ধরুন পণ্যগুলি একটি নির্দিষ্ট উপবিভাগের অন্তর্গত, এবং উপবিভাগগুলি একটি নির্দিষ্ট বিভাগের অন্তর্গত। সংরক্ষণের কাঠামোটি লিখুন।

Задание 2

একটি কোয়েরি লিখুন যা পণ্যগুলি, তাদের উপবিভাগ এবং বিভাগসহ নিয়ে আসবে।

Задание 3

একটি কোয়েরি লিখুন যা উপবিভাগগুলি তাদের বিভাগসহ নিয়ে আসবে।