
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.02.2015, 00:14:00
|
|||
|---|---|---|---|
|
|||
LEFT JOIN без условия ON |
|||
|
#18+
Есть ли возможность склеивать таблицы без услоия ON? Приведу пример - Есть таблица с именем пользователя и есть таблица со списком бонусов (их более 500) бонусы создают сами пользователи, как выбрать имя пользователя посчитать количество всех бонусов и посчитать бонусы которые принадлежат этому пользователю одним запросом... Вот какой запрос я составил: Код: sql 1. 2. Такой запрос отрабатывает! Но как то он мне не нравится... как можно избавится от этого костылика? "ON NULL" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 06:03:01
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
furashcka, on 1=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 06:03:35
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
или даже cross join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 06:13:19
|
|||
|---|---|---|---|
|
|||
LEFT JOIN без условия ON |
|||
|
#18+
furashcka, то есть, твоему серваку настолько нечего делать, что ты заставляешь его породить декартово произведение таблиц, после чего сгруппировать полученное множество, высчитывая агрегаты только для данных одного заданного пользователя? Верх иррациональности и расточительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 07:22:25
|
|||
|---|---|---|---|
|
|||
LEFT JOIN без условия ON |
|||
|
#18+
Добрый Э - Эх, На ошибках учусь))) что посоветует более просветленный? Подскажите как в этой ситуации составить запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 07:52:47
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
furashcka, странно, а почему бы не связать таблички по полю id_user ... что вам помешало, почему захотелось именно БЕЗ ON? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 08:49:59
|
|||
|---|---|---|---|
|
|||
LEFT JOIN без условия ON |
|||
|
#18+
Arhat109, мне нужно посчитать все бонусы, и посчитать все бонусы которые создал пользователь, если привяжу по id_user посчитает только те строки которые соответствуют условию, то есть не узнаю сколько всего бонусов есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 09:05:47
|
|||
|---|---|---|---|
|
|||
LEFT JOIN без условия ON |
|||
|
#18+
Кстати знает ли ктото как будет быстрее работать: a) При создании нового бонуса, приплюсовывать к общему счетчику бонусов +1 в дополнительной таблице (count) и после склеивать таблицы (Вытаскиваем количество записей из одной дополнительное таблици без использования COUNT() но при каждом создании бонуса обновляем дополнительную таблицу count +1) b) Считать при каждой выборке COUNT(*) Пример: a) Код: sql 1. 2. 3. 4. b) Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 09:41:13
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
Получите каждое данное отдельным подзапросом: Код: sql 1. 2. 3. 4. 5. 6. При наличии соотв. индексов вряд ли можно сделать быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 10:14:02
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
Да, возможно, в последнем подзапросе разумнее не COUNT(bonus.id), а COUNT(bonus.id_user). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.02.2015, 10:18:14
|
|||
|---|---|---|---|
LEFT JOIN без условия ON |
|||
|
#18+
furashcka, Это два разных действия. Их можно решить одним запросом, но только через подзапрос, скажем в блоке select. А то что вы делаете - извините, но бред. Об чём вам уже написали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1833579]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 356ms |

| 0 / 0 |
