|
|
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Есть 2 таблицы хранящие информацию по топикам и постам форума. В упрощенном варианте: Код: plaintext 1. 2. 3. 4. Страница с темами выводится так: название темы, дата открытия темы. Дата открытия темы - это дата первого поста в теме. Соответственно делаю SELECT из таблицы Topics и приджойниваю MIN(postDate) из Posts (по topicId). Проблема в том, что если постов больше 1, то выводится больше 1 строки - строки дублируются. Может ли кто объяснить, что делаю неверно, и что нужно сделать? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 11:02 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
А group by по топику сделано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 11:35 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 14:21 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
group by t.TopicId гораздо правильнее. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 14:23 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Да, сделано... правда в реальном запросе фигурирует аж 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 Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 14:30 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Ну и кто из них топик? И каковы связи между ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 14:42 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Не вникая в суть запроса ,то что выделено -лишнее GROUP BY supportRequests.requestId, supportRequests.requestTitle, supportRequests.requestState, supportRequests.requestUrgency,users.uName, users.uSurname, projects.projectName, mDate ORDER by mDate DESC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 15:04 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Прошу прощения, связь-то не указал. supportRequests.requestId - > supportMessages.mRequestId supportRequests.requestFrom - > users.uId users.uProjectId->projects.projectId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 18:24 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Кто из них топик? И у каждой связи какая сторона "один", а какая "много"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 18:33 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Вот для наглядности связи Топик (из начального примера) - соответственно supportRequests, а посты - supportMessages. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2004, 21:18 |
|
||
|
Задолбался с запросом. Джойны
|
|||
|---|---|---|---|
|
#18+
Ну так в group by все лишнее, кроме полей таблицы топиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2004, 11:44 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32505773&tid=1674852]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 461ms |

| 0 / 0 |
