powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц с сортировкой по дате
2 сообщений из 2, страница 1 из 1
Выборка из двух таблиц с сортировкой по дате
    #39175317
Иван198925
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Столкнулся с такой проблемой, есть 2 таблицы:
-- Table topic
CREATE TABLE topic (
id int NOT NULL AUTO_INCREMENT,
topic_name varchar(100) NOT NULL,
date_t timestamp NOT NULL,
CONSTRAINT topic_pk PRIMARY KEY (id)
);

-- Table answer
CREATE TABLE answer (
id int NOT NULL AUTO_INCREMENT,
text_answer varchar(500) NOT NULL,
topic_id int NOT NULL,
date_a timestamp NOT NULL,
CONSTRAINT answer_pk PRIMARY KEY (id)
);

-- Reference: answer_topic (table: answer)
ALTER TABLE answer ADD CONSTRAINT answer_topic FOREIGN KEY answer_topic (topic_id)
REFERENCES topic (id);

В таблице Topic содержатся темы, в таблице Answer содержатся ответы на эти темы (одной теме может соответствовать множество ответов, поле topic_id в таблице ответов). Но может быть и такое, что тема создана, но ни одного ответа на неё ещё нету.

Суть задачи в следующем: сделать выборку из таблицы Topic, но с таким условием, что темы должны быть отсортированы по дате последнего ответа. То есть те темы которые были созданы недавно или на них недавно ответили должны быть вверху.

Я кое-какой запрос сделал:
SELECT distinct t.id, t.topic_name, t.date_t FROM TOPIC t, ANSWER a WHERE t.id=a.topic_id GROUP BY a.date_a, t.date_t DESC

Но проблема в том, что он не учитывает того, что тема уже создана, но ни одного ответа на неё ещё нету.
Подскажите, пожалуйста, возможно ли это сделать с помощью одного запроса? Или правильнее сделать 2 отдельных запроса и потом уже как-то на уровне логики сравнивать их результаты? Буду благодарен любым подсказкам и советам.
...
Рейтинг: 0 / 0
Выборка из двух таблиц с сортировкой по дате
    #39175348
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван198925он не учитывает того, что тема уже создана, но ни одного ответа на неё ещё нету.
У тебя используется внутреннее связывание, поэтому все такие записи и отсеиваются.
Нужно стороннее связывание (LEFT JOIN).
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Выборка из двух таблиц с сортировкой по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]