![]() |
|
Модераторы: skyboy |
![]()
|
|
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Друзья, я плохо знаю SQL, вынужден просить вашей помощи. Запарка с следующем:
Есть 2 таблицы: comments id - INTEGER user_id - INTEGER text - TEXT module_id - INTEGER module_subid - INTEGER vote id - INTEGER user_id - INTEGER vote - INTEGER ref_id - INTEGER ref_subid - INTEGER Немного поясню назначение: У меня есть несколько модулей: новости, статьи и т.д. Пользователи должны иметь возможность оставлять к ним комментарии, которые будут храниться в таблице comments. module_id означает ид модуля, к которому комментарий оставлен (статьи, новости и т.д.). module_subid - это внутренний ид модуля - ид статьи, ид новости... В таблице vote храняться все результаты голосований, ref_id - это ид модуля, через который голос был добавлен, например это комментарий, или отдельное головование. ref_subid соответстввенно - это внутренный ид - ид комментария например. Мммда... так вот, идея состоит в следующем: нужно дать пользователю возможность переголосовывать, при этом старый голос заменяется на новый, для этого нужно определить, голововал ли он или нет. Короче дано: module_id module_subid ref_id user_id нужно определить, есть ли в таблице vote запись, соответствующая комментарию (ref_subid = comments.id), оставленному данным пользователем коментарий должен принадлежать данным module_id и module_subid . Как такое можно сделать одним запросом? |
|||
|
||||
| lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: нет Всего: 8 |
Из задания, совсем не ясно, как эти две таблицы связаны, а по заданию не ясно, зачем ты вообще здесь расписал таблицу "Comments". Мне лично не хватает информации для того, чтобы искать решение.
|
|||
|
||||
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Попытался графически всю эту байду представить в аттаче.
Как у меня работат пока: сначала вызываю
затем для каждого найденного comments_id в цикле
если хоть где - то запись встречается, значит пользователь уже голосовал в данной новости. Надо тоже самое одним запросом. Это сообщение отредактировал(а) S.A.P. - 3.1.2006, 03:25 Присоединённый файл ( Кол-во скачиваний: 3 )
tabl.PNG 8,09 Kb |
||||
|
|||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
Если я правильно понял, то попробуй следующее...
Если дано, что переголосовать должен пользователь, у которого user_id = UI, по модулю module_id = MI, module_subid = MSI, то тогда id голосования находится запросом
|
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
[offtop] И что это Казанцам не спится? [/offtop] |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Блин, точно!
Мда праздник выдался тяжелым Добавлено @ 04:04
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |