2012-01-07 109 views
1

我有這樣的情況。我有兩個MySQL表。一個「數據」表和第二個表「mirror_data」。 「數據」表由「本地」列組成(在此列中僅存儲一個數字)。這就是「mirror_data」表從mysql表中檢索信息

CREATE TABLE IF NOT EXISTS mirror_data 
    (
    id_mir INT(11) NOT NULL UNIQUE, 
    local VARCHAR(255), 
    local_mir VARCHAR(255), 
    id_data INT(11) NOT NULL DEFAULT 0 
    ); 

和最新第二個表意味着=>我標誌着本地列包含只是一個數字和這個(第二個表mirror_data)包括在本地列相同的信息(就像在「data」表中),還包含local_mir列,它標記了人名,讓我們說這只是一些字符串。

這裏是情況=>當我從「數據」表中檢索信息時,想檢查每個信息是否存在local_mir string(來自「mirror_data」表)當前本地(來自「data」表)列如果它存在,則從local_mir而不是數字(從本地列的「data」表中檢索)。

是否有任何想法如何做到這一點?

回答

2

我不完全確定,如果我得到你想要的東西,但它是這樣的東西?

SELECT 
    data.id, 
    case 
     when mirror_data.local_mir is not null then mirror_data.local_mir 
     else 
      data.local 
    end local 
FROM 
data 
LEFT JOIN 
mirror_data 
ON data.id = mirror_data.id_mir 

,或者使用COALESCE函數....

+0

感謝的建議,我會盡力做到這一點:) – DaHaKa 2012-01-07 10:10:57