2012-07-27 33 views
0

我有一個員工表MySQL的選擇不同的字段是爲空

id int(11) 
names varchar(120) 
family_names varchar(100) 
nickname varchar(100) 

和誰在工作表

id int(11) 
    personid int(11) 
    titleid int(11) 
    typeid int(11) 
    at_work datetime 
    status int(11) 

我的問題是我需要產生一個報告在那裏我檢查誰在工作,並顯示姓名,姓氏和頭銜。隨着人們由外號叫,我需要先檢查是否暱稱存在,所以我覺得在這個網站這個例子

SELECT IF(LENGTH(nickname)>0, nickname, names) FROM staff_list 

我會無論是暱稱或姓名,但我需要它並沒有解決我的請求搜索mu who_is_at_work表,然後獲取工作人員並創建該列表。

是否有可能做內選擇一個選擇,以獲得三個字段,我需要

暱稱/名,姓,標題

一段時間,我想通了,如何做到這一點之後。

我找到了解決方案,謝謝發佈。這是我最終做的。

SELECT p.id AS ID, 
    IF(LENGTH(p.nickname)>0, p.nickname, p.names) AS 'Names/Nickname', 
    p.family_names AS 'Family name', 
    r.rank AS 'Rank' 
    FROM atworklist AS who 
    LEFT JOIN stafflist as p on p.id = who.personid 
    LEFT JOIN title AS r ON r.id = p.titleid 
    where who.shipid= 2 and who.status in (2,3) 
    ORDER BY r.sortorder 

作品就像是我

回答