|
|
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
Есть таблицы products, product_categories (для связки - product_id, category_id), categories (id, title) Есть массив с filter в котором id категорий для отбора Надо отобрать категории которых ещё нет в массиве отбора, для продуктов у которых есть все категории из отбора. Например Товар1 - категории - 1, 2, 3, 4, 10, 11 Товар2 - категории - 2, 4, 7, 10 Товар3 - категории - 1, 3, 7 Отбор - 2, 4 Результат - 1 => title1 3 => title3 7 => title7 10 => title10 11 => title11 Из Товара1 и Товара 2 --- Я так понимаю, что надо делать две выборки. Первая из product_categories по условия (category_id IN filter) с результатом $products в виде массива product_id Вторая из product_categories по условия (product_id IN $products) с группировкой по category_id и соединением с categories. Не могу сообразить как выделить продукты категории которых полностью в отборе. Идея только сгруппировать первый запрос по product_id и вывести поле COUNT(*), которое должно быть равно count(filter), что и проверять при формировании products. Как сделать это красиво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 10:19:36 |
|
||
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
Список соответствующих отбору продуктов получается выбрать по такому запросу Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 11:11:47 |
|
||
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
Синицын АлександрНе могу сообразить как выделить продукты категории которых полностью в отборе. Идея только сгруппировать первый запрос по product_id и вывести поле COUNT(*), которое должно быть равно count(filter), что и проверять при формировании products. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 11:12:28 |
|
||
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
авторЗдесь прошли люди! Здесь прошли люди... люди... я их найду! ЛЮДИ!!! ("Чародеи" - Гость с Юга) Помогите дилетанту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 11:19:49 |
|
||
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
tanglir, Спасибо. Так лучше. Часть задачи есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 11:25:00 |
|
||
|
Научите как составить запрос
|
|||
|---|---|---|---|
|
#18+
Синицын АлександрЧасть задачи естьа дальше выбрать (дистинкт) категории, относящиеся к полученным товарам и потом убрать с помощью "нот ин" ненужные категории ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2014, 11:28:08 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1834338]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 311ms |

| 0 / 0 |
