С учетом таблицы messages
с этой структурой и данными:
id parent_id message
-- --------- -------
1 42 Foo
2 42 Bar
Затем вы можете сделать этот запрос SQL:
SELECT a.message AS message1,
b.message AS message2
FROM messages a
INNER JOIN messages b ON a.parent_id=b.parent_id
WHERE a.id<b.id;
И получить такой результат:
message1 message2
-------- --------
Foo Bar
Вы должны убедиться, что a.id
и b.id
не совпадают, чтобы вы не получили результаты "Foo Foo"
и "Bar Bar"
, и вам также нужно заказать их, если вы не хотите обаРезультаты "Foo Bar"
и "Bar Foo"
.
Вы также можете выполнить конкатенацию строк непосредственно в своем запросе.Для этой цели разные СУБД используют разный синтаксис;для MySQL я считаю, что это будет:
SELECT concat(a.message, b.message) AS clubbed_message
...
(Для полноты MSSQL использует оператор +
для конкатенации строк, а PostgreSQL и SQLite используют оператор ||
.)