2017-08-10 89 views
0

我有以下查詢其選擇不同源的語言,但我想表明它在一排如何顯示多行數據在一排所有唯一ID

SELECT msg_id, 
    CASE WHEN source=0 THEN language_name END AS 'language1', 
    CASE WHEN source=2 THEN language_name END AS 'language2', 
    CASE WHEN source=1 THEN language_name END AS 'language3' 
    FROM languages 
    WHERE msg_id=90491 


    msg_id language1 language2 language3 
    90491 Marathi  NULL  NULL 
    90491 NULL  NULL  English 
    90491 NULL  Hindi  NULL 

但我想結果爲

msg_id language1 language2 language3 
    90491 Marathi  Hindi  English 

我如何得到它

+0

請在我的表中發佈語言表 – Ali

回答

0

您可以使用INNER選擇查詢,如:

SELECT l.msg_id, 
(SELECT language_name FROM languages WHERE msg_id = l.msg_id AND source = 0) AS 'language1', 
(SELECT language_name FROM languages WHERE msg_id = l.msg_id AND source = 1) AS 'language2', 
(SELECT language_name FROM languages WHERE msg_id = l.msg_id AND source = 2) AS 'language3' 
FROM languages l 
WHERE l.msg_id=90491 

此查詢假定表中只有一個記錄,每個msg_idsource組合。

+0

的架構,有多個行,一個msg有差異來源0,1和2 – mansi

+0

@MansiChaudhari很好,這個查詢已經覆蓋了這個。 –

+0

此查詢給我錯誤像子查詢選擇的多行 – mansi