drop table if exists `messages`;
create table `messages` (
`abs` char(8) default null,
`emp` char(8) default null,
`content` char(16) default null,
`date` char(10) default null
) engine=innodb default charset=utf8mb4;
insert into `messages` values
('Nickel','Lisett','bla bla bla','4.12.1991'),('Tom','Nickel','bla bla bla','3.10.1991'),
('Lisett','Nickel','bla bla bla','2.10.1991'),('Nickel','Lisett','bla bla bla','15.9.1991'),
('Tom','Nickel','bla bla bla','3.9.1991'),('Nickel','Tom','bla bla bla','1.9.1991');
select abs, emp, content, date from messages m
join (
select distinct abs as a, emp as b from messages
union
select distinct emp as a, abs as b from messages
) p on (abs=a and emp=b) or (abs=b and emp-a)
order by a,b,date;
+--------+--------+-------------+-----------+
| abs | emp | content | date |
+--------+--------+-------------+-----------+
| Lisett | Nickel | bla bla bla | 2.10.1991 |
| Nickel | Lisett | bla bla bla | 15.9.1991 |
| Nickel | Lisett | bla bla bla | 4.12.1991 |
| Nickel | Tom | bla bla bla | 1.9.1991 |
| Tom | Nickel | bla bla bla | 3.10.1991 |
| Tom | Nickel | bla bla bla | 3.9.1991 |
+--------+--------+-------------+-----------+