2016-06-10 1 views
-1

У меня есть 2 таблицы в базе данных MySQL («комментарии» и «ответы»)Mysql выбор строк из нескольких таблиц в определенном порядке

Они имеют схемы:

comments: id,userId,text 
replies: id,userId,commentId,text 

мне нужна запрос MySQL что будет получать все комментарии из комментария таблицы, и после каждого комментария, то соответствующие ответы от таблицы ответов ...

, так что если у нас было: [comment 1] and [comment 2] in the comments table, and [reply 1] (to comment 1) and [reply 2] (to comment2) в таблице ответов

тогда было бы вернуть:

[comment 1] 
    [reply 1] 
    [comment 2] 
    [reply 2] 
+0

Возможно, вы захотите поиграть с 'group_concat'. – Solarflare

+0

@Solarflare - они, как я понимаю, вопрос, который Даниэль хочет получить ответы в строках после комментариев, будет использоваться group_concat, создавая один столбец со всеми ответами в нем. – PaulF

+0

@PaulF да, я думаю, вы правы, я неправильно понял это. Ваше профсоюзное решение должно работать. – Solarflare

ответ

2

Вы должны были бы объединить эти две таблицы & то порядок, основанный на replyID CommentID & для нескольких ответов.

В следующем я добавил фиктивный ответID 0 для исходного комментария. Таблицы объединяются с помощью UNION ALL. Обратите внимание, что я переименовал исходный столбец идентификатора таблицы комментариев &, чтобы они не столкнулись.

+0

Правильный ответ, только это не называется «соединение», а «объединение наборов результатов». –

+0

@ThorstenKettner - конечно, вы правы - просто мой плохой выбор слов при объяснении моего ответа. – PaulF

 Смежные вопросы

  • Нет связанных вопросов^_^