2010-05-07 2 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 
Смежные вопросы