الانضمام إلى 2 الأعمدة من جدول1 إلى الجدول 2

StackOverflow https://stackoverflow.com/questions/437617

  •  22-07-2019
  •  | 
  •  

سؤال

كيف يمكنك الإشارة جدول1 الأعمدة 2 الأعمدة في الجدول 2

أنا خلقت الجدول 'الدولة مع 50 الدقيق الصفوف

في محاولة للربط (weddingState,contactState) فيالزفاف'الجدول

هذا هو البيان الذي خلقته لكنه ينضم إلى أعلى WeddingState بشكل صحيح - لا يبدو أن نهتم الداخلية الانضمام إلى أقل من ذلك...

حدد *

من حفلات الزفاف

INNER JOIN الدول s1 على حفلات الزفاف.WeddingState = s1.StateId //الدولة من الزواج

INNER JOIN الدول s2 على حفلات الزفاف.ContactState = s2.StateId //الاتصال دولة العروس

حيث حفلات الزفاف.weddingid="094829292"

هل كانت مفيدة؟

المحلول

أعتقد أنك استرجاع هذه في PHP أو شيء وأنت جلب الصفوف في تجزئة مجموعة ، مقفول من قبل اسم الحقل.بالطبع يمكن أن يكون هناك سوى عنصر واحد في تجزئة مع مفتاح معين.لذلك تحتاج إلى استخدام عمود الأسماء المستعارة للتأكد من الأعمدة بنفس الاسم يتم إعطاء متميزة المستعار.

SELECT w.*, s1.StateID AS wstate, s2.StateId AS cstate
FROM weddings AS w
INNER JOIN states AS s1 ON w.WeddingState = s1.StateId //state of marriage
INNER JOIN states AS s2 ON w.ContactState = s2.StateId //contact state of bride
WHERE w.weddingid="094829292";

الآن التجزئة الخاصة بك-مجموعة سيكون لها مفاتيح "wstate" و "cstate".دون التعرج هذه الأعمدة واحد دائما الكتابة الأخرى.

نصائح أخرى

وماذا تحصل على النتيجة التي تؤدي إلى الاستنتاج ؟

سيكون مربكا بالنسبة للمبتدئين لأن أسماء الحقول في اثنين ينضم, بالإضافة إلى بعض أسماء الحقول في الجدول الأساسي ، متطابقة.إنها حقا فكرة جيدة صراحة اختيار الإخراج الخاص بك الأعمدة ومنحهم معنى الأسماء المستعارة.

ماذا عن:

حدد s1.StateName, s2.StateName

من حفلات الزفاف

INNER JOIN الدول s1 على حفلات الزفاف.WeddingState = s1.StateId //الدولة من الزواج

INNER JOIN الدول s2 على حفلات الزفاف.ContactState = s2.StateId //الاتصال دولة العروس

حيث حفلات الزفاف.weddingid="094829292"

شكرا بيل أضفت StateName كذلك

حدد ث.*,

s1.StateId AS WeddingStateId,

s1.StateName AS WeddingStateName,

s2.StateId AS ContactStateId,

s2.StateName AS ContactStateName

من حفلات الزفاف كما w

INNER JOIN الدول s1 على ث.WeddingState = s1.StateId

INNER JOIN الدول s2 ث.ContactState = s2.StateId

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top