
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.12.2015, 09:26:13
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
Есть таблица с документами грубо говоря: автор"doc" -id -name и есть таблица с правами доступа к документа грубо говоря: автор"doc_groups" -id -iddoc -idgroup у документа соответственно может быть несколько групп ... надо например выдернуть документы у которых есть доступ для 10 группы и 11... как правильней ? у меня два варианта.. как я делал .... раньше я делал: Код: sql 1. 2. 3. 4. 5. Сейчас начал делать: Код: sql 1. 2. 3. Как правильнее ... быстрее ... ? может еще какие варианты есть ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 09:59:37
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:05:38
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
caHek2xнадо например выдернуть документы у которых есть доступ для 10 группы и 11... как правильней ? Оба варианта неправильные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:09:34
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
AkinacaHek2xнадо например выдернуть документы у которых есть доступ для 10 группы и 11... как правильней ? Оба варианта неправильные. вам не сложно будет написать как будет правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:10:11
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
использовать EXISTS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:11:50
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
caHek2xAkinaпропущено... Оба варианта неправильные. вам не сложно будет написать как будет правильно ? стоп ... не для 10 И 11 .. а для 10 ИЛИ 11 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:17:49
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
Ну вот... тогда запросы правильные. Я бы делал так: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:18:26
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
Стоп. Не LEFT, а INNER JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:23:00
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
AkinaСтоп. Не LEFT, а INNER JOIN. inner от left отличается тем что left берет все записи даже есть нет совпадений в подсоединяемой таблице .. ? то что правильные в смысле правильных результатов это да ... а как правильней ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:33:27
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
caHek2xкак правильней ? Правильно - когда текст запроса соответствует требуемой логике. Внутреннее и левое связывания не могут соответствовать ей ОДНОВРЕМЕННО. Поскольку условие требует ОБЯЗАТЕЛЬНОГО наличия хотя бы одной записи либо 10, либо 11 группы, соответствующей выбираемой, чему стороннее связывание НЕ соответствует - нужно использовать строго внутреннее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 10:36:18
|
|||
|---|---|---|---|
|
|||
left join или вложенный select |
|||
|
#18+
AkinacaHek2xкак правильней ? Правильно - когда текст запроса соответствует требуемой логике. Внутреннее и левое связывания не могут соответствовать ей ОДНОВРЕМЕННО. Поскольку условие требует ОБЯЗАТЕЛЬНОГО наличия хотя бы одной записи либо 10, либо 11 группы, соответствующей выбираемой, чему стороннее связывание НЕ соответствует - нужно использовать строго внутреннее. я имел ввиду не с join как правильней ... я имею ввиду как правильней через join или через сложенный select ... и если через селект .. то есть ли смысл использовать EXISTS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.12.2015, 11:14:17
|
|||
|---|---|---|---|
left join или вложенный select |
|||
|
#18+
Правильно - это когда результат соответствует требуемому. Так что и так, и эдак правильно (если не напортачить). Что же до оптимальности - то, полагаю, запрос Код: sql 1. 2. 3. является оптимальным. Особенно при наличии необходимых для его эффективного выполнения индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1832402]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 310ms |

| 0 / 0 |
