|
|
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
Дано: таблица многие к многим. Хотелось бы подсчитать уникальные product_id (ИД товаров) которые одновременно имеют option_id = 3 И option_id = 17 Из таблицы выше должно получиться 1 (только один товар имеет обе опции 3 и 17). Вроде, всё просто, так-сяк пробую, а не то пальто :) Какой-то бы оператор ONLY_IN(3, 17). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 04:22:23 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
А почему бы в фак не добавить раздел про реляционное деление? Ведь часто встречаются такие вопросы... Например, для деления с остатком (могут быть и другие obj) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Или для деления нацело (разрешены только 3, 17, и ничего кроме них) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 05:50:10 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
Вариант модификации для трех значений Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:10:45 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
Что-то как-то не по-феншую. Слишком сложно как для подсчета :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:14:13 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
NMFES, гугл в помощь поиск "реляционное деление" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:16:21 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
lamer yuga, задумаюсь над изменение структуры, раз тут так сложно подсчет дается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:21:39 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
NMFES, да в чем сложность-то? Нет оператора only_in ? Ну нет. Структуру нормальную из-за этого ломать? Ваше право проще? Тоже не вопоос, раз самому гуглить лень Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:33:27 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
lamer yuga, не нравится мне подзапрос. Сама по себе конструкция может и не особо громоздкая, но среди других более тяжелых запросов на странице на этом хотелось бы сэкономить. Последний пример уже симпатичней :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 06:55:08 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
lamer yuga Код: sql 1. 2. 3. 4. 5. Тут возврат именно ИД, а не подсчитанное количество. Без подзапроса на основе примера выше сосчитать не выйдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 07:10:11 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
NMFESlamer yuga, не нравится мне подзапрос. Сама по себе конструкция может и не особо громоздкая, но среди других более тяжелых запросов на странице на этом хотелось бы сэкономить. Последний пример уже симпатичней :) что интересно, твои предположения по производительности не верны с точностью до наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 07:26:36 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
NMFES, согласно поставленной задаче "подсчитать", а не "получить", последний запрос должен выглядеть чуть иначе, типа так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. не вижу ничего сложного. Впрочем, мало чем отличается от вышеприведенных примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 08:12:06 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
Arhat109, Только все же count(distinct ...), а то при (prod, opt, other)={(2,3,5), (2,3,7)} результат будет неверен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 08:19:43 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
lamer yuga, возможно. Пусть автор сам вникает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 11:08:04 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
NMFES, не совсем понятно, что считаем авторХотелось бы подсчитать уникальные product_id (ИД товаров) которые одновременно имеют option_id = 3 И option_id = 17...Из таблицы выше должно получиться 1 (только один товар имеет обе опции 3 и 17). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 11:26:15 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
mini.weblab, а поняла (тоже попробую) Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 11:39:57 |
|
||
|
Шайтан-запрос #2
|
|||
|---|---|---|---|
|
#18+
mini.weblab, исправление N01 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2015, 12:16:06 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38961066&tid=1833193]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 368ms |

| 0 / 0 |
