2011-09-30 8 views
5

Diciamo che ho un setup di tabella con alcuni valori, incluso un nome, un ID e una chiave esterna che fa riferimento all'ID di un'altra tabella. Il nome può essere nullo. Quando seleziono tutti i record da questa tabella, voglio ottenere il nome se non è nullo. Se lo è, voglio ottenere il nome del record a cui fa riferimento la chiave esterna. Sono in grado di modificare la struttura del database, se necessario, o posso semplicemente cambiare la query. Quali sono le mie opzioni?MySQL: recupera un valore da un'altra tabella se la colonna è nullo

risposta

13

Usa 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

Abbiamo un winnar! Grazie! – Fibericon

1

Usa ISNULL per sql

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