اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

نستخدم USING في حال كان للجدولين نفس اسم العمود الذي سنقوم بالربط بين الجدولين عليه، أي هي فقط اختصار لكتابة الشيفرة البرمجية، وتستخدم في حالات خاصة. مثلا نستخدم USING عند عمل NATURAL JOIN لأنه يعتمد على دمج نتائج الأعمدة التي تحمل نفس الاسم.

الاستعلامين التاليين متكافئين:

SELECT * FROM TA AS a INNER JOIN TB AS b USING (Col_1);

SELECT * FROM TA AS a INNER JOIN TB AS b ON a.Col_1 = b.Col_1;

وفي NATURAL JOIN سيكون الدمج تلقائي بافتراض col_1 مشترك كما في المثال السابق:

SELECT * FROM TA NATURAL JOIN TB

عادة استخدام USING غير عملي، بسبب اختلاف أسماء الأعمدة بين الجداول، وعدم القدرة على عمل أكثر من ربط أو وضع أكثر من شرط على خلاف JOIN ON

  • 0
نشر

بشكل عام يمكن اعتبار الفرق بين الأثنين أقرب لكونه طريقة كتابة فقط الا أنه هناك بعض الفروقات الصغيرة بينهما.

ON هو الأكثر عمومية . يمكن استخدامها لضم  merge الجداول على عمود مشترك ، أو مجموعة من الأعمدة أو حتى شرط كالمثال التالي:

SELECT * FROM world.City JOIN world.Country ON (City.Code = Country.Code)

بينما يكون USING مفيدًا عندما يشترك كلا الجدولين في عمود يحمل نفس الاسم الذي ينضمون إليه. في هذه الحالة كمثال:

SELECT ... FROM Country JOIN world USING (country_id) WHERE ...

كذلك من الأشياء الرائعة الإضافية أن المرء لا يحتاج إلى تأهيل الأعمدة للدمج بشكل كامل هكذا:

SELECT film.title, film_id 
FROM film
JOIN film_actor USING (film_id)
WHERE ...

عوضا عن كتابتها باستخدام ON كاملة هكذا:

SELECT film.title, film.film_id 
FROM film
JOIN film_actor ON (film.film_id = film_actor.film_id)
WHERE ...

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...