|
|
|
Выборка из 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2007, 15:40 |
|
||
|
Выборка из 3-х связанных таблиц одним запросом
|
|||
|---|---|---|---|
|
#18+
Правильнее сказать не "групп, принадлежащих этому пользователю", а "группы, в которые входит пользователь". Можно использовать JOIN в различных вариантах. Например: Код: plaintext 1. 2. 3. 4. 5. 6. Если не нужна инфа о пользователе, то JOIN по users можно убрать (соответственно подправить и выбираемые поля). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2007, 13:02 |
|
||
|
Выборка из 3-х связанных таблиц одним запросом
|
|||
|---|---|---|---|
|
#18+
супер! большое спасибо - это именно то что нужно! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2007, 18:16 |
|
||
|
Выборка из 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 14:46 |
|
||
|
Выборка из 3-х связанных таблиц одним запросом
|
|||
|---|---|---|---|
|
#18+
ладно, пошел по другому пути... теперь вот получился такой запрос, который работает как надо. смущает размеры этого запроса. Код: plaintext 1. 2. 3. 4. 5. есть ли тут поле для оптимизации и минимизации? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2007, 13:16 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1544244]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 435ms |

| 0 / 0 |
