2012-04-13 21 views
6

मैंने नीचे दो टेबल बनाए, और FK_TypeID इस मामले में शून्य है। मैं दो टेबलों के में शामिल होने के लिए एक प्रश्न लिखना चाहता हूं।शून्य टेबल के साथ दो टेबल में शामिल हो?

अगर FK_TypeID एक निश्चित पंक्ति के लिए शून्य है, TypeName भी शून्य है। मुझे यकीन नहीं है कि इस तरह के जॉइन स्टेटमेंट को बनाने के बारे में कैसे जाना है?

[Actions] 
ActionsID 
Date 
Message 
FK_TypeID //links to the table below 

[Type] 
TypeID 
TypeName 

मेरे वर्तमान बयान इस तरह दिखता है और यह बस शून्यFK_TypeID पंक्तियों

SELECT  * 
FROM   Actions 
INNER JOIN  TypeName ON Actions.FK_TypeID = [Type].TypeID 

मदद बहुत सराहना की जाएगी छोड़ देता है!

उत्तर

19

तुम सिर्फ एक LEFT JOIN

SELECT Actions.Date, Actions.Message, Type.TypeName 
FROM Actions 
    LEFT JOIN Type 
     ON Type.TypeID = Actions.FK_TypeID 

उपयोग करने के लिए Actions के लिए एक मैच Type के साथ टाई करने के लिए नहीं मिलता है, तो जरूरत है, तो Type में सभी स्तंभों NULL हो जाएगा।

Here is a good graphical visualization of the different types of joins in SQL

+0

इस किस तरह जादू टोना है ?? यह एक आकर्षण की तरह काम किया;) धन्यवाद! – Bonk

+0

"जादूगर" शामिल रणनीति है। "बाएं जॉइन" का अच्छा उपयोग दिखाने के लिए जस्टिन पिहनी को +1 करें जहां पहली तालिका संदर्भित (बाएं तालिका) सभी परिणाम देता है, जबकि सही तालिका को पूर्ण के रूप में माना जाता है। यह वही है जो पोस्टर ने पूछा था। बहुत बढ़िया! –

0

एक बाहरी का उपयोग शामिल हों

SELECT Actions.Date, Actions.Message, Type.TypeName 
FROM Actions LEFT OUTER JOIN 
      Type ON Type.TypeID = Actions.FK_TypeID 
संबंधित मुद्दे