Looking for sql Keywords? Try Ask4Keywords

SQL पूरा जोइन


उदाहरण

JOIN का एक प्रकार जिसे कम जाना जाता है, वह पूर्ण JOIN है।
(नोट: फुल जॉइन 2016 के अनुसार MySQL द्वारा समर्थित नहीं है)

एक पूर्ण OUT JOIN, बाईं तालिका से सभी पंक्तियों को और दाएं तालिका से सभी पंक्तियों को वापस करता है।

यदि बाईं तालिका में ऐसी पंक्तियाँ हैं, जिनमें दाईं तालिका में मिलान नहीं हैं, या यदि दाईं तालिका में ऐसी पंक्तियाँ हैं, जिनकी बाईं तालिका में मिलान नहीं हैं, तो उन पंक्तियों को भी सूचीबद्ध किया जाएगा।

उदाहरण 1 :

SELECT * FROM Table1

FULL JOIN Table2 
     ON 1 = 2 

उदाहरण 2:

SELECT 
     COALESCE(T_Budget.Year, tYear.Year) AS RPT_BudgetInYear 
    ,COALESCE(T_Budget.Value, 0.0) AS RPT_Value 
FROM T_Budget 

FULL JOIN tfu_RPT_All_CreateYearInterval(@budget_year_from, @budget_year_to) AS tYear 
      ON tYear.Year = T_Budget.Year 

ध्यान दें कि यदि आप सॉफ्ट-डिलीट का उपयोग कर रहे हैं, तो आपको WHERE- क्लॉज में सॉफ्ट-डिलीट स्टेटस को फिर से जांचना होगा (क्योंकि फुल जॉइन एक यूनिअन की तरह ही व्यवहार करता है);
इस छोटे से तथ्य को अनदेखा करना आसान है, क्योंकि आप AP_SoftDeleteStatus = 1 को क्लॉज में शामिल करते हैं।

इसके अलावा, अगर आप फुल जॉइन कर रहे हैं, तो आपको आमतौर पर NULL को WHERE-क्लॉज में अनुमति देनी होगी; एक मूल्य पर NULL की अनुमति देना भूल जाने से INNER जॉइन के समान ही प्रभाव पड़ेगा, जो कि आप चाहते हैं कि अगर आप FULL JOIN कर रहे हैं तो कुछ ऐसा न हो।

उदाहरण:

SELECT 
     T_AccountPlan.AP_UID
    ,T_AccountPlan.AP_Code
    ,T_AccountPlan.AP_Lang_EN
    ,T_BudgetPositions.BUP_Budget
    ,T_BudgetPositions.BUP_UID 
    ,T_BudgetPositions.BUP_Jahr
FROM T_BudgetPositions    

FULL JOIN T_AccountPlan
    ON T_AccountPlan.AP_UID = T_BudgetPositions.BUP_AP_UID 
    AND T_AccountPlan.AP_SoftDeleteStatus = 1 

WHERE (1=1) 
AND (T_BudgetPositions.BUP_SoftDeleteStatus = 1 OR T_BudgetPositions.BUP_SoftDeleteStatus IS NULL) 
AND (T_AccountPlan.AP_SoftDeleteStatus = 1 OR T_AccountPlan.AP_SoftDeleteStatus IS NULL)