
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.05.2007, 15:40
|
|||
|---|---|---|---|
|
|||
Выборка из 3-х связанных таблиц одним запросом |
|||
|
#18+
Добрый день, есть такие таблицы: таблица пользователей (поле uid является ключевым) Код: plaintext 1. таблица групп (поле gid является ключевым) Код: plaintext 1. таблица связей групп и пользователей (uid и gid определены как внешние ключи к соответствующим таблицам) Код: plaintext 1. Решаю задачу выборки пользователя с определенным идентификатором и групп, принадлежащих этому пользователю. Задачу выпонляю в несколько этапов: 1) читаю пользователя с uid=123 Код: plaintext 1. 2) читаю информацию о связях пользователя uid=123 с группами: Код: plaintext 1. 3) и затем в цикле посылаю запросы таблице groups, в качестве условия выборки подставляю значения из запроса №2: Код: plaintext 1. ---------------- Работает всё нормально но хотелось бы знать - можно ли данную задачу решить как то проще? использую СУБД: MySQL 5.x ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2007, 13:02
|
|||
|---|---|---|---|
|
|||
Выборка из 3-х связанных таблиц одним запросом |
|||
|
#18+
Правильнее сказать не "групп, принадлежащих этому пользователю", а "группы, в которые входит пользователь". Можно использовать JOIN в различных вариантах. Например: Код: plaintext 1. 2. 3. 4. 5. 6. Если не нужна инфа о пользователе, то JOIN по users можно убрать (соответственно подправить и выбираемые поля). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.05.2007, 18:16
|
|||
|---|---|---|---|
|
|||
Выборка из 3-х связанных таблиц одним запросом |
|||
|
#18+
супер! большое спасибо - это именно то что нужно! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.10.2007, 14:46
|
|||
|---|---|---|---|
|
|||
Выборка из 3-х связанных таблиц одним запросом |
|||
|
#18+
сейчас использую такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. в результате выборки получается чтото наподобие: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. скажите, как можно добавить в выборку еще один столбец, равный количеству элементов в группе.. чтобы получилась такая таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2007, 13:16
|
|||
|---|---|---|---|
|
|||
Выборка из 3-х связанных таблиц одним запросом |
|||
|
#18+
ладно, пошел по другому пути... теперь вот получился такой запрос, который работает как надо. смущает размеры этого запроса. Код: plaintext 1. 2. 3. 4. 5. есть ли тут поле для оптимизации и минимизации? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&tablet=1&tid=1544244]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 505ms |

| 0 / 0 |
