ডিফল্ট মাইএসকিউএল যোগদানের আচরণ, অন্তর্গত বা আউটরের কী?


95

তাই আমি শেষ ঘন্টাটি ইন্টারনেটে ঘুরে দেখছি, এই সাধারণ প্রশ্নের যথাযথ উত্তরটি পড়েছি এবং সন্ধান করছি।

মাইএসকিউএল-এ ডিফল্ট জোনে কী?

SELECT * FROM t1 JOIN t2

যে হিসাবে একই

SELECT * FROM t1, t2

OR

SELECT * FROM t1 INNER JOIN t2

এছাড়াও একটি সম্পর্কিত প্রশ্ন, আপনি যখন "WHERE" ধারাগুলি ব্যবহার করেন, তখন এটি যোগ বা INNER যোগদানের মতো?

এই মুহুর্তে আমি ভাবছি একা একা জোইন কমা এবং যেখানে ক্লজ ব্যবহারের সাথে সমান।

উত্তর:


128

মাইএসকিউএল লিখিতভাবে JOINঅযোগ্য প্রমাণিত হয় INNER JOIN। অন্য কথায় INNERINNER JOINঐচ্ছিক। INNERএবং CROSSমাইএসকিউএল প্রতিশব্দ হয়। স্পষ্টতার জন্য আমি লিখি JOINবা INNER JOINযদি আমার যোগদানের শর্ত থাকে এবং CROSS JOINযদি আমার শর্ত থাকে না।

যোগদানের জন্য অনুমোদিত সিনট্যাক্সটি ডকুমেন্টেশনে বর্ণিত হয়েছে ।


এই মুহূর্তে আমি একা একা মনে করি জোমা কমা এবং WHERE ক্লজগুলি ব্যবহার করে (অভিন্ন) ছাড়া আর কিছুই নয়।


প্রভাব একই, কিন্তু তাদের পিছনে ইতিহাস আলাদা। কমা সিনট্যাক্সটি এএনএসআই-89 স্ট্যান্ডার্ডের। তবে এই সিনট্যাক্সটিতে বেশ কয়েকটি সমস্যা রয়েছে তাই এএনএসআই -92 স্ট্যান্ডার্ডে জয়ন কওয়ার্ডটি চালু হয়েছিল।

আমি দৃ strongly়ভাবে সুপারিশ করব যে আপনি সর্বদা কমা না দিয়ে যোগ সিনট্যাক্স ব্যবহার করুন।

  • T1 JOIN T2 ON ...এর চেয়ে বেশি পঠনযোগ্য T1, T2 WHERE ...
  • এটি আরও রক্ষণাবেক্ষণযোগ্য কারণ টেবিলের সম্পর্ক এবং ফিল্টারগুলি একত্রিত হওয়ার পরিবর্তে পরিষ্কারভাবে সংজ্ঞায়িত হয়।
  • JOIN সিনট্যাক্সটি কমা সিনট্যাক্সের চেয়ে আউটার জোনে রূপান্তর করা সহজ।
  • একই বিবৃতিতে কমা এবং জোয়েন্ট সিনট্যাক্স মিশ্রণ অগ্রাধিকার নিয়মের কারণে কৌতূহলী ত্রুটি দিতে পারে।
  • ভুলে যাওয়া জয়েন ক্লজটির কারণে JOIN সিনট্যাক্স ব্যবহার করার সময় দুর্ঘটনাক্রমে কার্টেসিয়ান পণ্য তৈরি হওয়ার সম্ভাবনা কম, কারণ যোগদানের ক্লজগুলি যোগ দের পাশে লেখা থাকে এবং এটি অনুপস্থিত কিনা তা সহজেই দেখা যায়।

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

আরে মার্ক, জিন এবং কমাগুলির মিশ্রণ বলতে কী বোঝাতে চাইছেন। এর মতো প্রশ্নের মিশ্রণ করুন, * টি -1 থেকে বাম যোগদানের (টি 2, টি 3, টি 4) ওয়ান (t2.a = t1.a এবং t3.b = t1.b এবং t4.c = t1.c) নির্বাচন করুন?
কোয়াং ভ্যান

4
@ কোয়াং: উদাহরণস্বরূপ এটি ব্যর্থ হবে:SELECT * FROM t1, t2 JOIN t3 ON t1.x=t3.y WHERE t1.a = t2.b
মার্ক বায়ার্স

0

এগুলি সমস্ত সমতুল্য এবং সমান CROSS JOIN,।

কমা এবং [INNER | CROSS] JOINসিনট্যাক্স ব্যবহারের মধ্যে কিছু পার্থক্য রয়েছে , যা আরও সারণীতে যোগদানের সময় গুরুত্বপূর্ণ হতে পারে। মাইএসকিউএল JOINডকুমেন্টেশনে আপনাকে যা জানা দরকার তা খুব সুন্দরভাবে বর্ণিত হয়েছে ।


4
^ --- প্রশ্নের উত্তর হ'ল মূলত INNER এবং কমা + যেখানে ক্লোজস
কোয়াং ভ্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.