2017-08-10 32 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

相关问题