2011-01-14 9 views
19

Estoy teniendo dos mesas como this.Both son tablas separadasusa la condición If else para seleccionar la columna en mysql?

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

Y otra tabla contiene la siguiente estructura

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

que hay que seleccionar el AccountNo o TempAccountNo, MICOLUMNA De la tabla II y la condición es

If (tableII.AccountNo not in table I) 

necesito para elegir TempAccountNo from table II

else 

tengo que elegir AccountNo from table II

¿Cómo puedo lograr esto.

Respuesta

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

¿Por qué es la respuesta más aceptada? ¿Qué hace? –

27

Tengo una consulta de MySQL para el campo de selección múltiple utilizando declaraciones if ... else o usando la declaración de casos. Esto se describe a continuación.

  1. MYSQL seleccionar mediante sentencia if

    select IF('fieldname with condition','if true value','if false value') from table_name where 1; 
    
  2. MYSQL seleccionar si el uso de varias demás

    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; 
    

Trate de usar estas consultas.

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 

Esto ayudará ..