noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик

Как сделать, чтобы отображались все ответы, а не первый попавшийся?

Реализую ответы к комментариям и вытягиваю их и ответы к ним через джоины. Проблема в том, что у одного комментария может быть много ответов, но если делать через джоины, то будет вытягиваться первый попавшийся. Вот запрос:

SELECT name, id, content, rep_name, rep_content, date, rep_date, com_id FROM messages
            LEFT JOIN repls ON messages.id = repls.com_id;

В итоге код находит первый ответ, у которого com.id равен id определенного комментария и дублирует комментарий, вместо того, чтобы добавить новый к уже существующему комментарию. Мне нужно, чтобы джоины, вытягивая комментарий выводили все ответы к нему, а не поочередно, можно ли так сделать?
(Или же можете написать свой вариант, если это делается не по такой структуре).
Ответы:

CREATE TABLE IF NOT EXISTS repls(
        rep_id INT PRIMARY KEY AUTO_INCREMENT,
         rep_name TEXT,
        rep_content TEXT, 
         rep_date DATETIME, 
         com_id INT, CONSTRAINT curr_com FOREIGN KEY(com_id) REFERENCES messages(id)
         )

Вопросы:

CREATE TABLE IF NOT EXISTS messages(
            id INT PRIMARY KEY AUTO_INCREMENT,
            name TEXT NOT NULL,
            content TEXT NOT NULL,
            date DATETIME NOT NULL
        )
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
@morbid
Ваш запрос выбирает все данные. Смотрите, как обрабатывается data set, который возвращает СУБД
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы