ON
বিবৃতি ব্যতীত যোগদানের ক্যোয়ারী লেখা সম্ভব ? এবং এইগুলিতে কীভাবে আলাদা হয়ে যায় LEFT JOIN, RIGHT JOIN
কাজগুলিতে।
ON
বিবৃতি ব্যতীত যোগদানের ক্যোয়ারী লেখা সম্ভব ? এবং এইগুলিতে কীভাবে আলাদা হয়ে যায় LEFT JOIN, RIGHT JOIN
কাজগুলিতে।
উত্তর:
মাইএসকিউএল ডকুমেন্টেশন এই বিষয়টিকে কভার করে।
এখানে একটি সংক্ষিপ্তসার। যখন ব্যবহার join
বা inner join
, on
শর্ত ঐচ্ছিক। এটি এএনএসআই স্ট্যান্ডার্ড থেকে আলাদা এবং প্রায় কোনও অন্য ডাটাবেস থেকে পৃথক। এর প্রভাব ক cross join
। একইভাবে, আপনি এর on
সাথে একটি ধারা ব্যবহার করতে পারেন cross join
, এটি স্ট্যান্ডার্ড এসকিউএল থেকেও পৃথক।
ক্রস জোড় একটি কার্টেসিয়ান পণ্য তৈরি করে - এটি হ'ল প্রথম টেবিল থেকে 1 সারি এবং দ্বিতীয় থেকে 1 সারির প্রতিটি সম্ভাব্য সংমিশ্রণ। তিনটি সারি ('a', 'b' এবং 'c') সহ একটি টেবিলের জন্য ক্রস জোড় এবং চারটি সারি সহ একটি টেবিলের জন্য (বলুন 1, 2, 3, 4) 12 টি সারি থাকবে।
অনুশীলনে, আপনি যদি ক্রস জয়েন করতে চান তবে ব্যবহার করুন cross join
:
from A cross join B
এর থেকে অনেক ভাল:
from A, B
এবং:
from A join B -- with no on clause
on
ডান বা বাম বাহ্যিক যোগদানের জন্য এই ধারাটি প্রয়োজনীয়, সুতরাং আলোচনাটি তাদের জন্য প্রাসঙ্গিক নয়।
আপনার যদি বিভিন্ন ধরণের যোগদানের বিষয়টি বুঝতে হয় তবে আপনার কিছু সম্পর্কিত ডেটাবেজে অধ্যয়ন করতে হবে। স্ট্যাকওভারফ্লো সেই স্তরের আলোচনার জন্য উপযুক্ত জায়গা নয়।
Http://www.sitepPoint.com / বোঝাপড়া- sql- joins- mysql- database/ এ কিছু উদাহরণ দেখুন
আপনি ক্যোয়ারির মতো 'চালু' এর পরিবর্তে 'ইউএসিং' ব্যবহার করতে পারেন
SELECT * FROM table1 LEFT JOIN table2 USING (id);
ON
ক্লজটি যেমন টেবিলগুলি সম্পর্কিত তা সার্ভারকে বলে, না। যদি আপনার পৃথক যোগদানের প্রকারগুলি একই ফলাফল দেয় তবে আপনি এটি কোনওভাবে ভুল করছেন এবং কিছু কোড যুক্ত করা আমাদের সমস্যাটি চিহ্নিত করতে সহায়তা করতে পারে। মাঝামাঝি সময়ে জেফ অ্যাটউডের ব্লগটিতে 2 মিনিটের মতো আলাদা আলাদা জোনের প্রকারের দিকে যান।