Tiago:
¿Cómo es la forma correcta de buscar alias?
En el código de abajo, estoy creando un alias llamado (USER), dentro de esta columna ahora recogía todos los valores en la columna (DE) y (PARA).
(SELECT *, de as user FROM mensagens WHERE user = '1' GROUP BY projeto ORDER BY data DESC)
UNION
(SELECT *, para as user FROM mensagens WHERE user = '1' GROUP BY projeto ORDER BY data DESC)
SQL en línea: http://sqlfiddle.com/#!9/d506b7/2
d juergen:
Podrías hacerlo
select * from
(
SELECT *, de as user FROM mensagens
UNION
SELECT *, para FROM mensagens
) tmp
where user = 1
GROUP BY projeto
ORDER BY data DESC
O aún más simple:
SELECT *
FROM mensagens
WHERE 1 in (de, para)
GROUP BY projeto
ORDER BY data DESC