2011-09-30 33 views
5

Giả sử tôi có một thiết lập bảng với một vài giá trị, bao gồm tên, ID và khóa ngoài tham chiếu ID của bảng khác. Tên có thể là null. Khi tôi chọn tất cả các bản ghi từ bảng này, tôi muốn lấy tên nếu nó không phải là null. Nếu có, tôi muốn lấy tên của bản ghi được tham chiếu bởi khóa ngoại. Tôi có thể sửa đổi cấu trúc cơ sở dữ liệu nếu cần, hoặc tôi có thể thay đổi truy vấn đơn giản. Những lựa chọn của tôi là gì?MySQL - lấy giá trị từ một bảng khác nếu cột là rỗng

Trả lời

13

Sử dụng IFNULL hoặc 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

Chúng tôi có một winnar! Cảm ơn! – Fibericon

1

Sử dụng ISNULL cho sql

SELECT T1.ID, ISNULL(T1.name, T2.name) AS name 
FROM firsttable T1 
LEFT JOIN secondtable T2 
ON T1.T2_id = T2.id 
Các vấn đề liên quan