Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задолбался с запросом. Джойны / 12 сообщений из 12, страница 1 из 1
02.05.2004, 11:02
    #32505578
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Есть 2 таблицы хранящие информацию по топикам и постам форума.
В упрощенном варианте:

Код: plaintext
1.
2.
3.
4.
Topics                                             Posts
 ------------------                          -----------------------------
 
topicId | topicName                         postId | topicId | postDate

Страница с темами выводится так: название темы, дата открытия темы. Дата открытия темы - это дата первого поста в теме. Соответственно делаю SELECT из таблицы Topics и приджойниваю MIN(postDate) из Posts (по topicId). Проблема в том, что если постов больше 1, то выводится больше 1 строки - строки дублируются.

Может ли кто объяснить, что делаю неверно, и что нужно сделать?
Заранее спасибо!
...
Рейтинг: 0 / 0
02.05.2004, 11:35
    #32505586
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
А group by по топику сделано?
...
Рейтинг: 0 / 0
02.05.2004, 14:21
    #32505633
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Код: plaintext
1.
2.
3.
select t.TopicName,min(p.postdate) as OpenDate
from topics t inner join posts p
on t.topicId=p.topicId
group by t.TopicName
...
Рейтинг: 0 / 0
02.05.2004, 14:23
    #32505635
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
group by t.TopicId
гораздо правильнее. :^)
...
Рейтинг: 0 / 0
02.05.2004, 14:30
    #32505639
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Владимир Саныч

Да, сделано... правда в реальном запросе фигурирует аж 4 таблицы. Вот реальный запрос (прошу прощение за его громоздкость).

Для наглядности, я приаттачил файл, где можно визуально посмотреть структуру таблиц.

SELECT supportRequests.requestId, supportRequests.requestTitle, supportRequests.requestState, supportRequests.requestUrgency, Min([mDate]) AS mDate, users.uName, users.uSurname, projects.projectName FROM ((projects INNER JOIN users ON projects.projectId = users.uProjectId) INNER JOIN supportRequests ON users.uId = supportRequests.requestFrom) INNER JOIN supportMessages ON supportRequests.requestId = supportMessages.mRequestId WHERE supportRequests.requestState=0 GROUP BY supportRequests.requestId, supportRequests.requestTitle, supportRequests.requestState, supportRequests.requestUrgency,users.uName, users.uSurname, projects.projectName, mDate ORDER by mDate DESC


Спасибо за помощь!
...
Рейтинг: 0 / 0
02.05.2004, 14:42
    #32505641
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Ну и кто из них топик? И каковы связи между ними?
...
Рейтинг: 0 / 0
02.05.2004, 15:04
    #32505646
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Не вникая в суть запроса ,то что выделено -лишнее
GROUP BY supportRequests.requestId, supportRequests.requestTitle, supportRequests.requestState, supportRequests.requestUrgency,users.uName, users.uSurname, projects.projectName, mDate ORDER by mDate DESC
...
Рейтинг: 0 / 0
02.05.2004, 18:24
    #32505716
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Владимир Саныч

Прошу прощения, связь-то не указал.

supportRequests.requestId - > supportMessages.mRequestId
supportRequests.requestFrom - > users.uId
users.uProjectId->projects.projectId
...
Рейтинг: 0 / 0
02.05.2004, 18:33
    #32505721
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Кто из них топик?
И у каждой связи какая сторона "один", а какая "много"?
...
Рейтинг: 0 / 0
02.05.2004, 21:18
    #32505773
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Владимир Саныч

Вот для наглядности связи
Топик (из начального примера) - соответственно supportRequests, а посты - supportMessages.
...
Рейтинг: 0 / 0
03.05.2004, 11:44
    #32505882
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Ну так в group by все лишнее, кроме полей таблицы топиков.
...
Рейтинг: 0 / 0
03.05.2004, 14:34
    #32505967
Larvef
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задолбался с запросом. Джойны
Спасибо огромное за участие в проблеме!
Удачи!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задолбался с запросом. Джойны / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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