Ich denke, das könnte das sein, was Sie hier buchstäblich wollen:
SELECT DISTINCT
status_id,
(SELECT MAX(user_id) FROM comments c2 WHERE c1.status_id = c2.status_id) user_1,
(SELECT user_id FROM comments c2 WHERE c1.status_id = c2.status_id
ORDER BY user_id LIMIT 1 OFFSET 1) user_2
FROM comments c1
WHERE user_id IN (2,3);
Demo
(Ihr Update-Fiddle)
Wir können korrelierte Unterabfragen verwenden, um die maximale user_id
zu finden und die zweitgrößte user_id
für jede status_id
, und drehen Sie dann jede davon als zwei separate Spalten aus. Verwenden eines GROUP_CONCAT
Ansatz wäre hier vielleicht vorzuziehen, da man damit auch beliebig viele Nutzer problemlos als CSV-Liste unterbringen könnte.
Wenn Sie MySQL 8+ oder höher verwenden, könnten wir außerdem die Ranganalysefunktionen nutzen, was ebenfalls einfacher wäre.