2011-01-14 6 views
19

मैं दो तालिकाओं this.Both की तरह हो रहा है अलग-अलग तालिकाओंmysql में कॉलम चुनने के लिए if else condition का उपयोग करें?

AccountNo  User   Name 
---------------------------------- 
1    U   a 
2    U   b 
3    U   c 

हैं और एक और तालिका संरचना

TempAccountNo  Mycolumn AccountNo  
------------------------------------------ 
4    X    2341 
5    Y     2 
6    Z    2568 

मैं AccountNo या TempAccountNo, MyColumn चुनने के लिए तालिका द्वितीय और से की जरूरत है निम्नलिखित शामिल हालत

If (tableII.AccountNo not in table I) 

मैं TempAccountNo from table II

चयन करने की आवश्यकता है
else 

मुझे लगता है मैं इस लक्ष्य को हासिल कर सकते हैं कैसे AccountNo from table II

चयन करने के लिए की जरूरत है।

उत्तर

31
SELECT IF(t1.AccountNo IS NULL, t2.TempAccountNo, t2.AccountNo) AS optional_field 
    FROM table2 t2 
LEFT JOIN t1 ON t1.AccountNo = t2.AccountNo 
+1

क्यों इस व्यापक रूप से स्वीकार्य जवाब है? यह क्या करता है? –

27

मेरे पास एकाधिक चयन फ़ील्ड के लिए एक MySQL क्वेरी है जिसका उपयोग कर ... और कथन या केस स्टेटमेंट का उपयोग कर। यह नीचे वर्णित है।

  1. MYSQL अगर बयान

    select IF('fieldname with condition','if true value','if false value') from table_name where 1; 
    
  2. MYSQL कई का उपयोग कर चयन करता है, तो किसी और

    select 
        CASE 
        WHEN fieldname1 = 'value1' THEN 'if true then give value' 
        WHEN fieldname2 = 'value2' THEN 'if true then give value' THEN 'if true then give value' 
        WHEN fieldname3 = 'value3' THEN 'if true then give value' THEN 'if true then give value' 
        WHEN fieldname4 = 'value4' THEN 'if true then give value' THEN 'if true then give value' 
        ELSE 'else all false then give default value' 
        END as STATUS, 
    from table_name where 1; 
    

इन प्रश्नों उपयोग करने का प्रयास का उपयोग कर का चयन करें।

0
SELECT IF(t1.AccountNo IS NULL, t2.TempAccountNo, t2.AccountNo) AS Acc_common 
FROM table1 t1 
INNER JOIN table2 t2 ON t1.AccountNo = t2.AccountNo 

यह मदद मिलेगी ..

संबंधित मुद्दे