2011-09-30 13 views
5

Digamos que tengo una configuración de tabla con algunos valores, incluyendo un nombre, una ID y una clave externa que hace referencia al ID de otra tabla. El nombre puede ser nulo. Cuando selecciono todos los registros de esta tabla, quiero obtener el nombre si no es nulo. Si es así, quiero obtener el nombre del registro al que hace referencia la clave externa. Puedo modificar la estructura de la base de datos si es necesario, o simplemente puedo cambiar la consulta. ¿Cuáles son mis opciones?MySQL - recuperar un valor de otra tabla si la columna es nula

Respuesta

13

Uso IFNULL o COALESCE:

SELECT T1.ID, IFNULL(T1.name, T2.name) AS name 
FROM firsttable T1 
LEFT JOIN secondtable T2 
ON T1.T2_id = T2.id 
+0

Tenemos una winnar! ¡Gracias! – Fibericon

1

Uso ISNULL para sql

SELECT T1.ID, ISNULL(T1.name, T2.name) AS name 
FROM firsttable T1 
LEFT JOIN secondtable T2 
ON T1.T2_id = T2.id 
Cuestiones relacionadas