2010-05-07 51 views
3

我有一个MySQL的问题选择更多的行作为列

我想有一个查询到一个变种的结果,并使用它来更新到触发我试图让逗号分隔

名称

查询返回多于一行

SELECT t.naam 
FROM trefwoorden t 
INNER JOIN organisaties_has_trefwoorden AS o ON (t.id_trefwoorden = o.id_trefwoorden) 
WHERE o.id_organisaties = NEW.id_organisaties; 

这里是触发

CREATE TRIGGER updCheck_After AFTER 
UPDATE ON organisaties_has_trefwoorden 
FOR EACH row  

    UPDATE organisaties o 
    SET o.trefwoorden_flat = 
    (
     SELECT t.naam 
     FROM trefwoorden t 
     INNER JOIN organisaties_has_trefwoorden AS o ON (t.id_trefwoorden = o.id_trefwoorden) 
     WHERE o.id_organisaties = NEW.id_organisaties;   
    ) 
    WHERE o.id_organisaties = NEW.id_organisaties 

问题是有可能选择更多的行为1列逗号分隔 还是有其他解决方案吗?

有人有建议吗?

回答

3
UPDATE organisaties o 
SET  o.trefwoorden_flat = 
     (
     SELECT GROUP_CONCAT(t.naam SEPARATOR ',') 
     FROM trefwoorden t 
     INNER JOIN 
       organisaties_has_trefwoorden AS o 
     ON  t.id_trefwoorden = o.id_trefwoorden 
     WHERE o.id_organisaties = NEW.id_organisaties  
     ) 
WHERE o.id_organisaties = NEW.id_organisaties