Сохранен 163
https://2ch.hk/b/res/225907455.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 01/08/20 Суб 21:55:25 #1 №225907455 
ЛижетУхо.mp4
Поют.mp4
Сап, программач.

Пишу свой простенький фильтр для интернет магазина. Помогите пожалуйста с запросом.

Для начала опишу упрощенно структуру БД. Не обращайте внимания на некоторую избыточность, это сделано для упрощения запросов. Таблицы разбил по группам, чтобы выделить жирным отдельные поля, которые значат одно и то же.

products - id, name - таблица с товарами
subproducts - id, productid, price - таблица подтоваров. Просто у меня в один товар входит несколько подтоваров, каждый может иметь свою цену и определяется по количеству фильтров

filters - id, name - таблица с группой фильтров. Этой таблицей мы характеризуем группу фильтров, например, "цвет"
filter_parameters - id, filterid, value - это конкретно сами фильтры, разбитые по группам и имеющие значения

subproduct_filter_values - id, productid, subproductid, valueid - это таблица, которая в себе связывает айди подтовара с айди фильтра.

Сперва я сделал вот такой запрос (выделил жирным часть запроса с фильтрами):
SELECT FROM `products` LEFT JOIN `subproduct_filter_values` as `t2` ON `products`.`id`=`t2`.`productid` WHERE `hidden`=0 and (`catid`=11 or `catid`=12 or `catid`=13) and `price`>50 and `price`<5000 and ( `t2`.`valueid`=20 or `t2`.`valueid`=21) and ( `t2`.`valueid`=33 or `t2`.`valueid`=34) GROUP BY products.`id` ORDER BY `ord` DESC

И мне показалось, что работает. Но потом я отправил запрос, добавив ещё фильтр:
SELECT
FROM `products` LEFT JOIN `subproduct_filter_values` as `t2` ON `products`.`id`=`t2`.`productid` WHERE `hidden`=0 and (`catid`=11 or `catid`=12 or `catid`=13) and `price`>50 and `price`<5000 and ( `t2`.`valueid`=12 or `t2`.`valueid`=13 or `t2`.`valueid`=19 or `t2`.`valueid`=20 or `t2`.`valueid`=21) and ( `t2`.`valueid`=33 or `t2`.`valueid`=34) GROUP BY products.`id` ORDER BY `ord` DESC

Видите, там фильтры перебираются через условия or? Если фильтры относятся к одной группе, то логично конечно or, но между группами фильтров мне надо and!

Тогда я снова переписал запрос:
SELECT * FROM `products` LEFT JOIN `subproduct_filter_values` as `t2` ON `products`.`id`=`t2`.`productid` WHERE `hidden`=0 and (`catid`=11 or `catid`=12 or `catid`=13) and `price`>50 and `price`<5000 and ( `t2`.`valueid`=16 or `t2`.`valueid`=17) and ( `t2`.`valueid`=33 or `t2`.`valueid`=34) GROUP BY products.`id` ORDER BY `ord` DESC

Я уже предвкушал как всё заработает, но нихуя не заработало. Ведь я обращаюсь к единственному параметру, а он не может быть одновременно иметь два и более значений. Помогите запрос составить пожалуйста. Блин, не знаю как объяснить точнее, я тупой хлебушек. Спрашивайте, постараюсь ответить на вопросы
Аноним 01/08/20 Суб 21:58:19 #2 №225907621 
бамп
Аноним 01/08/20 Суб 22:01:00 #3 №225907785 
бамп
Аноним 01/08/20 Суб 22:01:17 #4 №225907804 
>>225907455 (OP)
Нахуй ты на голом SQL пишешь? На чем там этот твой интернет-магазин? Разве там нет какой-нибудь ORM?

>( `t2`.`valueid`=16 or `t2`.`valueid`=17) and ( `t2`.`valueid`=33 or `t2`.`valueid`=34)

> (x = a or x = b) and (x = c or x = d)

Это же противоречивое условие, как так вышло, током ебнуть? Перестань думать в терминах фильтров и думай в терминах предикатов.
Аноним 01/08/20 Суб 22:03:07 #5 №225907930 
>>225907804
>Нахуй ты на голом SQL пишешь? На чем там этот твой интернет-магазин? Разве там нет какой-нибудь ORM?
На пыхе пишу.

>Это же противоречивое условие, как так вышло, током ебнуть?
Ну вот так. Как исправить? :с
Аноним 01/08/20 Суб 22:05:09 #6 №225908058 
бамп
Аноним 01/08/20 Суб 22:06:36 #7 №225908152 
Роллер.mp4
бамп
Аноним 01/08/20 Суб 22:08:22 #8 №225908266 
ГенииЧистогоРазума.webm
бамп
Аноним 01/08/20 Суб 22:09:22 #9 №225908337 
Объясни, что ты пытаешься сделать, нормальным языком, и я, так и быть, подскажу.

нихуя не шарю в порнографировании, но ущербную логику вижу
Аноним 01/08/20 Суб 22:14:09 #10 №225908647 
>>225908337
А, я понял всё. Короче, у тебя фильтры построены на айди, которые не могут принимать два значения одновременно. Так переделай фильтры так, чтобы они искали искомый продукт не по айди, а по его параметру, например, цвету. То есть ты сейчас буквально написал:

(товар = 1 или товар = 2) И (товар = 3 или товар = 4)

А нужно так

(товар.цвет = красный или товар.цвет = серобуромалиновый) И (товар.размер = как мой хуй или товар.размер = как жопа моей мамы)
Аноним 01/08/20 Суб 22:15:25 #11 №225908724 
>>225908337
Хочу запросом получить список товаров, удовлетворяющих условиям фильтра.

>Объясни, что ты пытаешься сделать, нормальным языком
Не получается почему-то. Вроде головой понимаю, а объяснить не могу. Поэтому структуру таблиц вкинул.

Окей, попробую так. Скриптом я отправляю массив фильтров, например, вот такой массив:

Это фильтр №1
filter[1][0] = 12 - нулевой элемент массива со значением 12
filter[1][1] = 13 - первый элемент массива со значением 13
Это фильтр №2
filter[2][0] = 22 - нулевой элемент массива со значением 22
filter[2][1] = 45 - первый элемент массива со значением 45

Мне надо каким-то боком выдернуть товары, удовлетворяющие этим условиям Как запрос бы построить?
Аноним 01/08/20 Суб 22:17:14 #12 №225908847 
>>225908647
Такое решение мне не походит. Ты предлагаешь список параметров забить жестко в базу, а у меня для каждой категории товаров параметры добавляются динамически, поэтому я для фильтров и их значений сделал отдельные таблицы. СПИСОК ФИЛЬТРОВ ЗАРАНЕЕ НЕ ИЗВЕСТЕН
Аноним 01/08/20 Суб 22:17:47 #13 №225908881 
Епифанцев.mp4
бумп
Аноним 01/08/20 Суб 22:18:34 #14 №225908931 
>>225907455 (OP)
Какое-то говно из жопы, фильтры, хуильтры, что ты несёшь?

Сунь каждому продукту колонок со свойствами и ищи по ним до посинения.
Аноним 01/08/20 Суб 22:19:38 #15 №225909025 
ахегао.mp4
>>225908931
>Сунь каждому продукту колонок со свойствами и ищи по ним до посинения.
Отвечал же: >>225908847

Такое решение мне не походит. Ты предлагаешь список параметров забить жестко в базу, а у меня для каждой категории товаров параметры добавляются динамически, поэтому я для фильтров и их значений сделал отдельные таблицы. СПИСОК ФИЛЬТРОВ ЗАРАНЕЕ НЕ ИЗВЕСТЕН
Аноним 01/08/20 Суб 22:20:02 #16 №225909052 
>>225908847
Что значит динамически?
Аноним 01/08/20 Суб 22:21:33 #17 №225909151 
Пешеходы.mp4
>>225909052
Ну значит могут добавляться со временем новые через админку.
Аноним 01/08/20 Суб 22:22:47 #18 №225909218 
>>225909151
Ну и так у вас чё, в пыхе нет динамических массивов чи шо?
Аноним 01/08/20 Суб 22:23:09 #19 №225909247 
РжачныйЧел.mp4
бумп
Аноним 01/08/20 Суб 22:23:34 #20 №225909274 
>>225907455 (OP)
соус 1 есть?
Аноним 01/08/20 Суб 22:23:57 #21 №225909300 
>>225909274
Нету
Аноним 01/08/20 Суб 22:25:21 #22 №225909384 
МногоКотят.webm
бумп
Аноним 01/08/20 Суб 22:26:30 #23 №225909455 
Laurens.mp4
бумп
Аноним 01/08/20 Суб 22:26:33 #24 №225909458 
Фу, пэхапэ.
Аноним 01/08/20 Суб 22:26:38 #25 №225909464 
>>225909151
То есть были условные трусы зелёные, менеджеришка через админку добавил признак лямки и теперь это будут трусы зелёные с лямками?
Он руками перехуячивает весь каталог и назначает некоторым товарам новые свойства?
Аноним 01/08/20 Суб 22:31:00 #26 №225909758 
HenningMay.webm
>>225909464
Что-то вроде того. Допустим, завезли к нам носки, а носков мы не продавали. Заводим новую категорию или подкатегорию "носки", в админке для нее добавляем группу фильтров "цвет носка", в нее добавляем признак "цвет носка красный", "цвет носка синий" и "цвет носка зеленый". Потом добавляем еще какие-нибудь группы и признаки к ним. Потом переходим в форму добавления товаров, а там уже будут эти признаки, отсортированные по группам, осталось только галочки поставить.
Аноним 01/08/20 Суб 22:31:06 #27 №225909761 
Почему ты обращаешься к единственному параметру, если у тебя их много?
Аноним 01/08/20 Суб 22:34:07 #28 №225909980 
ПоютГрузинки.webm
>>225909761
Сперва я так сделал, потому что отлаживал скрипт. Это работало. Но когда групп фильтров стало больше одной, то меня ждал неприятный сюрприз. Ты задал правильный вопрос. Я вот как раз бьюсь над тем, как это реализовать
Аноним 01/08/20 Суб 22:35:39 #29 №225910105 
>>225909151
Сделай отдельно таблицу с параметрами, у товаров делай столбец id параметров и столбец значениями

Собственно будешь отсеивать товары по id параметра, а потом по значению

Уверен что это можно как-то грамотно организовать
Аноним 01/08/20 Суб 22:37:35 #30 №225910251 
КорейскиеРэперы.webm
>>225910105
>Сделай отдельно таблицу с параметрами, у товаров делай столбец id параметров и столбец значениями
Так уже все отдельно, в оп-посте написал. Или ты что-то добавил?
Аноним 01/08/20 Суб 22:37:43 #31 №225910261 
>>225909980
Пиздец, недаром говорят, что на пхп кодят только газонюхи. Там что, какой-то сайт с картинками существует, где умственно отсталых учат престижной профессии? А, ну да, существует, двачем называется. Так вот, >>225910105 всё верно пояснил.
Аноним 01/08/20 Суб 22:38:53 #32 №225910367 
>>225909758
Так бы, блядь, сразу и сказал.
Почитай чем отличается левый от правого джоина.
Аноним 01/08/20 Суб 22:40:32 #33 №225910489 
>>225910367
Точнее тебе подойдёт full outer join.
Аноним 01/08/20 Суб 22:40:43 #34 №225910505 
ЧерныеДыры.webm
>>225910367
Так у меня тут проблема не с джойном
Аноним 01/08/20 Суб 22:41:59 #35 №225910603 
Вселенная.webm
>>225910261
В добавлении айди параметра вроде какое-то рациональное зерно есть... Только понять бы как это в запрос впихнуть
Аноним 01/08/20 Суб 22:44:04 #36 №225910764 
>>225910251
В саму таблицу с товаром, помимо имени добавь id параметров и их значения
Тогда ты по сути сможешь напрямую из таблицы товаров дёргать необходимые товары.

Я оч плохо помню бд с вузика, но мне кажется, так логичнее
Аноним 01/08/20 Суб 22:44:18 #37 №225910790 
Nostalgi.webm
>>225910489
Не сработало что-то
Аноним 01/08/20 Суб 22:44:43 #38 №225910811 
>>225910603
Хм. Хм-м-м-м-м. Хм! Может быть... может быть... добавить каждому товару список id его параметров и соответствующих им значений, как и было предложено изначально? Да не, хуйня какая-то. Продолжаем дрочить двач.
Аноним 01/08/20 Суб 22:45:21 #39 №225910866 
ОП троллит тупостью, не ведитесь.
Аноним 01/08/20 Суб 22:45:31 #40 №225910881 
гепаррда.mp4
>>225910764
Количество параметров может быть каким угодно, чел
Аноним 01/08/20 Суб 22:46:41 #41 №225910975 
>>225910811
Окей, покажи как это будет выглядеть в таблице. Как мы можем засунуть в таблицу с товаром список айди, если этот список заранее неизвестен?
Аноним 01/08/20 Суб 22:47:55 #42 №225911069 
>>225910790
Тогда exists отдельно на каждую группу фильтров.
Аноним 01/08/20 Суб 22:49:30 #43 №225911190 
>>225910881
чел, через запятую перечисли несколько айди, жсоном, чемнить ещё

Тогда заведи отдельную таблицу со значениями параметров
Id - tovarid - paramid - paramvalue

Получай из нее айди товаров по подходящим параметрам
Аноним 01/08/20 Суб 22:49:55 #44 №225911217 
>>225910975
Делаешь пустой список, расширяешь его так, как тебе надо.
Аноним 01/08/20 Суб 22:51:52 #45 №225911359 
>>225907455 (OP)
> SELECT FROM `products` WHERE `hidden`=0 and (`catid`=11 or `catid`=12 or `catid`=13) and `price`>50 and `price`<5000 and exists (select from `subproduct_filter_values` where product_id = products.id and valueid in ('14', '88')) and exists (select * from `subproduct_filter_values` where product_id = products.id and valueid in ('OP', 'HUI'))
Аноним 01/08/20 Суб 22:52:26 #46 №225911397 
>>225911190
Есть такая таблица, смотри оп-пост. Проблема не в таблице, а в составлении запроса. Без обид, если у кого не хватило мозгов на прочтение и осознавание оппоста, то проходите мимо. Уж я думал, что тупой, но не думал что тупее меня есть)
Аноним 01/08/20 Суб 22:53:02 #47 №225911432 
Это тред помощи с программированием? Помогите и мне тоже. Не работает код на джаве:

int 1 = 2;
system.out.println(1);

Сменить имя переменной не предлагать.
Аноним 01/08/20 Суб 22:56:27 #48 №225911678 
>>225911432
> Сменить имя переменной не предлагать.
Тогда хуй соси.
Аноним 01/08/20 Суб 22:57:38 #49 №225911788 
>>225911432
Смени язык программирования.
Аноним 01/08/20 Суб 23:01:19 #50 №225912089 
>>225911788
А где так можно?
sageАноним 01/08/20 Суб 23:02:39 #51 №225912204 
>>225911397
Как скажешь братик, епись сам тогда и дай Бог тебе здоровья, и мозгов
Аноним 01/08/20 Суб 23:04:28 #52 №225912344 
>>225912204
Братик, если ты глупая обиженка, то ты ничем не поможешь. Иди отсюда с миром
Аноним 01/08/20 Суб 23:04:50 #53 №225912375 
>>225907455 (OP)
Схуяли один параметр не может иметь несколько значения ?
связь многие ко многим не ?
Аноним 01/08/20 Суб 23:05:41 #54 №225912429 
>>225912375
Как это реализовать в запросе?
Аноним 01/08/20 Суб 23:06:11 #55 №225912472 
>>225911397
Скил задавать вопросы обязателен к прокачке.
Мало того, что правильно заданный вопрос содержит половину ответа, так ещё у отвечающего не загорится жопа.
Аноним 01/08/20 Суб 23:07:00 #56 №225912531 
>>225907455 (OP)
И вообще сделал бы модель нормальную в разы быстрее бы дело пошло, вот делать не хуй сидеть в тонну строк вникать, че там понаписано.
Аноним 01/08/20 Суб 23:07:14 #57 №225912541 
>>225912429
Тебе уже сказали про exists.
Аноним 01/08/20 Суб 23:07:57 #58 №225912588 
>>225912541
Ну?
Аноним 01/08/20 Суб 23:09:24 #59 №225912685 
>>225907455 (OP)
Бля, ты же недели две назад уже срал этой хуйней, может делом займёшься, вместо этого?
Аноним 01/08/20 Суб 23:09:48 #60 №225912709 
>>225912429
тебе базу надо менять. делаешь связь многое ко многим между фильтрами и продукатами появиться промежуточная таблица в которой 1 товару можно хоть миллион фильтров понаставить и спокойно свой запрос юзаешь вообще ничего не меняя.
Аноним 01/08/20 Суб 23:11:01 #61 №225912809 
>>225912709
Я просто это не умею. Ткни плез в какую-нибудь статью mysql, где это объясняется
sageАноним 01/08/20 Суб 23:13:17 #62 №225912950 
>>225912344
Хорошо братик, буду обиженкой, а ты дальше глупи на простых вещах.

С кривой архитектурой БД и 0 базовых знаний в их проектировании.
Аноним 01/08/20 Суб 23:14:52 #63 №225913055 
>>225912950
Братик, я понимаю, что тебе надо свои анальные боли унять вскукареком напоследок, но лучше не надо, ок? Ты бы смотрелся лучше, кинув напоследок полезную инфу, а не демонстрируя свой кровоточащий от боли пукан
Аноним 01/08/20 Суб 23:18:09 #64 №225913231 
>>225912809
Просто добовляеш еще 1 промежуточную таблицу в которой будет id товара и id фильтров и делаешь запрос на этой таблице
http://jtest.ru/bazyi-dannyix/sql-dlya-nachinayushhix-chast-3.html
sageАноним 01/08/20 Суб 23:18:36 #65 №225913255 
>>225913055
Тебе шибко умному несколько раз написали, что и куда смотреть.
Давай мы поищем информацию за тебя, сами изучим и сами сделаем. Устроит такой вариант?
Аноним 01/08/20 Суб 23:19:04 #66 №225913288 
>>225913231
Так ведь есть такая таблица, читай оп-пост
Аноним 01/08/20 Суб 23:20:31 #67 №225913381 
>>225913255
Петушок обиженный, тебя спросить забыли. Иди помажь разодраный пукан зеленкой и ложись спать. Не можешь помочь - заткни свой спермоприемник, без сопливых разберемся)
sageАноним 01/08/20 Суб 23:21:34 #68 №225913438 
>>225911432
Не работает потому что не system a System, очевидно
sageАноним 01/08/20 Суб 23:21:59 #69 №225913469 
>>225913381
Ты с каждым разом отвечаешь всё агрессивнее. У тебя всё хорошо?
Аноним 01/08/20 Суб 23:23:16 #70 №225913551 
>>225913469
Тебе нравится, когда тебя унижают и ссут в рот?
sageАноним 01/08/20 Суб 23:23:55 #71 №225913586 
>>225913551
Видимо у тебя всё очень плохо.
Аноним 01/08/20 Суб 23:24:38 #72 №225913638 
>>225913586
Твое пукло сегодня перестанет гореть или нет?)
sageАноним 01/08/20 Суб 23:24:48 #73 №225913643 
>>225907455 (OP)
ORM.
sageАноним 01/08/20 Суб 23:26:00 #74 №225913719 
>>225913638
С чего ты взял что оно горит?
Аноним 01/08/20 Суб 23:27:25 #75 №225913810 
>>225913719
Ты вроде уходить собирался, а до сих пор сосальник завалить не можешь)
sageАноним 01/08/20 Суб 23:28:54 #76 №225913909 
>>225913810
Попроси вежливо и я уйду, возможно.
Аноним 01/08/20 Суб 23:30:04 #77 №225913970 
>>225913909
Ну раз ты хочешь, чтоб я тебе еще раз нассал в ебало, то раззевай ротеш
sageАноним 01/08/20 Суб 23:32:14 #78 №225914103 
>>225913970
Ты бы лучше свою задачу решал с таким же усердием, как мне отвечаешь.
Аноним 01/08/20 Суб 23:33:34 #79 №225914191 
>>225914103
Ты бампаешь мой тред, послушный песик)
sageАноним 01/08/20 Суб 23:36:48 #80 №225914379 
>>225914191
Увы, но это не поможет тебе и не решит твою проблему.
Аноним 01/08/20 Суб 23:37:58 #81 №225914444 
>>225914379
Не все такие тупые как ты, щас кто-нибудь подскажет
sageАноним 01/08/20 Суб 23:41:48 #82 №225914638 
>>225914444
Повторю, что тебе уже несколько человек подсказало
Аноним 01/08/20 Суб 23:44:48 #83 №225914810 
>>225909274
https://youtu.be/I2HI3CUTEmc
Вроде бы оно.
Аноним 01/08/20 Суб 23:52:52 #84 №225915365 
>>225907455 (OP)
нормализуй бд, хуле у тебя дубликаты а не внешние ключи.
Аноним 01/08/20 Суб 23:53:04 #85 №225915381 
111.png
>>225907455 (OP)
Еще раз опиши что ты хочешь получать. Желательно на конкретных примерах.
И структуру твоей БД тоже хотелось бы. И примеры данных из всех таблиц.
Аноним 01/08/20 Суб 23:57:39 #86 №225915706 
>>225915381
Вот мой последний запрос:

SELECT * FROM `products` LEFT JOIN `subproduct_filter_values` as `t2` ON `products`.`id`=`t2`.`productid` WHERE `hidden`=0 and (`catid`=11 or `catid`=12 or `catid`=13) and `price`>50 and `price`<5000 and ( `t2`.`valueid`=16 or `t2`.`valueid`=17) and ( `t2`.`valueid`=33 or `t2`.`valueid`=34) GROUP BY products.`id` ORDER BY `ord` DESC

Жирным я выделил свою попытку выдрать товары по определенным значениям фильтров. Если фильтры относятся к одной группе, то они перечисляются через OR, и никаких проблем нет. А между группами фильтров я как бы логично поставил операнд AND, но этот запрос не сработал, а потом я сообразил, что запрос идет построчно, и он не может определить принадлежность товара сразу к двум фильтрам из разных групп.
Аноним 01/08/20 Суб 23:59:36 #87 №225915834 
>>225909274
AftynRose на порнхабе.
Аноним 02/08/20 Вск 00:01:41 #88 №225915965 
автор создай схему на http://sqlfiddle.com/и выложи сюда
Аноним 02/08/20 Вск 00:05:54 #89 №225916257 
>>225915706
Ты долбоеб? У тебя взаимоисключающие условия в скобках.
Аноним 02/08/20 Вск 00:06:53 #90 №225916332 
>>225916257
Прочитай еще раз пост
Аноним 02/08/20 Вск 00:07:08 #91 №225916355 
>>225915706
К какой нахуй группе лол? Ты прогуливал информатику в 9 классе?
Аноним 02/08/20 Вск 00:07:27 #92 №225916388 
>>225916332
Ты долбоеб.
Аноним 02/08/20 Вск 00:07:50 #93 №225916410 
>>225916332
Перечитай ещё раз булеву логику.
Аноним 02/08/20 Вск 00:08:34 #94 №225916460 
>>225916388
Ты не тот обиженный долбик, что я обоссал пару постов назад?
Аноним 02/08/20 Вск 00:10:30 #95 №225916614 
>>225915965
http://sqlfiddle.com/#!9/3a7cbc/1
Аноним 02/08/20 Вск 00:12:16 #96 №225916746 
>>225907455 (OP)
> Я уже предвкушал как всё заработает, но нихуя не заработало.

Ты туповат, смени сферу деятельности.
sageАноним 02/08/20 Вск 00:12:41 #97 №225916771 
>>225916460
Не хвались по чём зря
Аноним 02/08/20 Вск 00:13:39 #98 №225916817 
>>225916771
Какой послушный песик, сразу отзывается)
Аноним 02/08/20 Вск 00:14:53 #99 №225916904 
>>225908724
Как в опп посте первый, через or
Аноним 02/08/20 Вск 00:15:53 #100 №225916955 
>>225916904
OR подходит, если фильтры относятся к одной группе. Как быть, если к разным?
sageАноним 02/08/20 Вск 00:16:42 #101 №225917010 
>>225916817
Ты явно слышал пасту про голубя и шахматы, ты и есть этот голубь
Без негатива
Аноним 02/08/20 Вск 00:19:15 #102 №225917176 
>>225917010
Попробуй пукло в воде остудить, может поможет)
sageАноним 02/08/20 Вск 00:21:21 #103 №225917311 
>>225917176
Придумай что-то новое, повторяешься
Аноним 02/08/20 Вск 00:21:58 #104 №225917353 
>>225917311
Зачем? У тебя и так неплохо горит, рвешься как дешевый китайский гондон)
sageАноним 02/08/20 Вск 00:22:51 #105 №225917412 
>>225917353
Покажи пожалуйста, в каком месте у меня горит?
Аноним 02/08/20 Вск 00:23:41 #106 №225917465 
>>225916955
К каким блядь группам? Вселенная схлопнется, если or напишешь?
Аноним 02/08/20 Вск 00:25:17 #107 №225917569 
>>225916955
Через ор, или двумя запросами, без разницы.
Аноним 02/08/20 Вск 00:26:59 #108 №225917676 
>>225915706
Он не сработал по другой причине
Аноним 02/08/20 Вск 00:32:00 #109 №225917988 
>>225917465
Допустим, есть группа фильтров "цвет" и "размер". Они содержат:

Цвет:
Красный id=33
Синий id=32
Зеленый id=31

Размер:
S id=19
M id=18
L id=17

Допустим, мы хотим получить красные (id=33) фуболки. Ставим в запрос что-то вроде WHERE `t2`.`valueid`=33 и все норм.
Допустим, хотим получить все красные (id=33) и синие (id=32) футболки. Ставим в запрос что-то вроде WHERE (`t2`.`valueid`=32 or `t2`.`valueid`=33) и опять все норм.

До этого наши фильтры относились к одной группе. Как же быть, если они относятся к разным группам?

То есть, допустим, мы хотим получить красные (id=33) и синие (id=32) футболки размером M (id=18). Как в таком случае построить запрос?
Вот это - WHERE (`t2`.`valueid`=32 or `t2`.`valueid`=33 or `t2`.`valueid`=18) - будет неверным, т.к. зацепит все красные футболки независимо от размеров, все синие футболки независимо от их размеров и все футболки размером M (которые могут оказаться зелеными). Писать через and? Так это логически неверно. Как быть?
Аноним 02/08/20 Вск 00:35:51 #110 №225918190 
>>225917988
WHERE ((`t2`.`valueid`=32 and `t2`.`valueid`=18) or (`t2`.`valueid`=33 and `t2`.`valueid`=18))
Аноним 02/08/20 Вск 00:36:58 #111 №225918252 
>>225918190
>`t2`.`valueid`=32 and `t2`.`valueid`=18
Как у тебя одно и то же поле может содержать сразу два значения?
Аноним 02/08/20 Вск 00:38:39 #112 №225918354 
>>225918252
Вот именно почему тебя в одной таблице разные свойства.....

Делай тогда два запроса и из них третий.
Аноним 02/08/20 Вск 00:39:31 #113 №225918400 
>>225918354
Поясни на примере
Аноним 02/08/20 Вск 00:40:38 #114 №225918454 

>>225918400
Я не обслуживаю информационно, сори, гугли подзаполсы
Аноним 02/08/20 Вск 00:41:37 #115 №225918510 
>>225918454
Обслужишь мой хуй тогда, хуесос?
Аноним 02/08/20 Вск 00:41:37 #116 №225918511 
>>225918454
Не обслуживаешь, но языком чесать любишь? Так и скажи, что ничего не понял. Обоссан, свободен)
Аноним 02/08/20 Вск 01:13:28 #117 №225920320 
>>225907455 (OP)
Чел, единственный совет могу тебе дать: не спрашивай ничего на дваче, по крайней мере в /бэ/
Тут каждый второй погромист 300к/наносек. А когда дело доходит до какой-нибудь задачки простейшей, все эти люди куда-то испаряются и остаются одни дуболомы, которые вопросы с очевидными ответами задают.
Не трать время, двачедауны тебе мало чем помогут.
Аноним 02/08/20 Вск 01:15:48 #118 №225920435 
Love Automatic - NIGHTMARE.mp4
>>225920320
К сожалению каждый раз тоже в этом убеждаюсь, анон
Аноним 02/08/20 Вск 01:39:14 #119 №225921497 
бумп
Аноним 02/08/20 Вск 01:50:37 #120 №225922056 
ОП ты какую-то хуйню нагородил, как я понял тебе надо в колонке value отличать разные свойства друг от друга? Ну добавь еще столбец вроде value_type и пиши туда тип значения. И будет у тебя условие:
((t2.valueid=12 or t2.valueid=13) and value_type='color') or ((t2.valueid=19 or t2.valueid=20 or t2.valueid=21) and value_type='smell').
Вообще если у тебя данимический набор полей может тебе лучше использовать какую-нибудь MongoDB?
Аноним 02/08/20 Вск 01:52:49 #121 №225922176 
>>225922056
>((t2.valueid=12 or t2.valueid=13) and value_type='color') or ((t2.valueid=19 or t2.valueid=20 or t2.valueid=21) and value_type='smell').
Прочитай вот >>225917988

Тут пояснил дополнительно
Аноним 02/08/20 Вск 01:57:54 #122 №225922411 
>>225920435
внезапно никто не хочет решать за кого-то задачи, консалтинг приличных денег
Аноним 02/08/20 Вск 02:00:39 #123 №225922549 
>>225922176
Используй nosql и не изобретай велосипед
Аноним 02/08/20 Вск 02:01:25 #124 №225922587 
>>225922411
Скорее, никто не может. Как-то раз в треде, где все мерялись своими программистскими яйцами и хвастались, что они-де у лягушки хуй видели и комару яйца отстреливали, я вбросил примитивную программистскую задачку, которая решается за 10-15 секунд, ничего замудренного, уровень школы 10 класса. То есть, там не на логику решение, просто банально операторы знать. И что вы думаете? Никто не решил! Все обсирались. Только через три часа под самое закрытие треда нашелся анон, который решил эту школьную задачку. После этого стал ясен уровень местных "икспердов"
Аноним 02/08/20 Вск 02:01:51 #125 №225922599 
>>225922549
Используй мой хуй тогда
Аноним 02/08/20 Вск 02:16:04 #126 №225923235 
>>225922587
ну тут понятно должно быть, что такого количества икспердов на тред в принципе быть не может, вакансии где нужны искперды годами закрываются, что как бы намекает на шанс их появления в случайном треде на дваче
Аноним 02/08/20 Вск 02:17:18 #127 №225923290 
>>225922599
Твоя схема - это мусор, твой предел - верстать визитки, товары у него фильтрами определяются, охуеть истории просто. Для начала научись свои мысли выражать, иначе ничего кроме HTML-программирования тебе не светит.
Если вся твоя проблема состоит в динамическом наборе данных, оставляй две своих таблицы products и subproducts и добавляй таблицу properties с полями subproduct_id, property_name, value, джойни с сабпродуктами и ищи че хочешь. Хртьфу
Аноним 02/08/20 Вск 02:20:21 #128 №225923412 
>>225923290
>добавляй таблицу properties с полями subproduct_id, property_name, value
Ты предлагаешь почти то же самое, проблема никуда не девается. У тебя не хватает мозгов составить запрос
Аноним 02/08/20 Вск 02:22:02 #129 №225923489 
>>225923235
Тут задача не для эксперта, а банальная джуновская, лол. Тут сотни 300к/наносек, в тредах с зарплатами постоянно кидают скрины доходов, а как доходит до дела, то не могут вбросить решение задачи, которую они уже решали тысячу раз. Странно
Аноним 02/08/20 Вск 02:23:01 #130 №225923518 
>>225923412
нет, я предлагаю тебе выкинуть все твои таблицы кроме 3-х и искать по любому набору полей, если у тебя 3 таблицы заджоинить мозгов не хватает, это твои проблемы, тут не я помощи прошу, а ты, так что иди в пятерочку и не трать чужое время
Аноним 02/08/20 Вск 02:25:19 #131 №225923601 
>>225923518
>если у тебя 3 таблицы заджоинить мозгов не хватает
Я так понимаю, ты дальше продолжишь кудахтать и оправдываться, пытаясь скрыть свою тупость? Ну так это ты зря стараешься, мы все видим, что ты туповат и не в состоянии написать этот простой запрос. Можешь сваливать с треда, тебе уже нассали в рот, не захлебнись там)
Аноним 02/08/20 Вск 02:26:13 #132 №225923642 
>>225923489
ну я например 200К чистыми получаю, мне лень что-то делать, какая-то задача непонятная, я бы выносил свойства изначально в отдельные таблицы и джойнил бы по айди, если что надо отобрать, а если всё в одной таблице, я хз, скорее надо кучу вложенных селектов делать
Аноним 02/08/20 Вск 02:29:22 #133 №225923751 
>>225923601
Какой тухлый байт! Только вот просить помощи пришел ты, так что открывай книжечку по sql и начинай читать с самой первой страницы, а я пошел спать, арибидерчи
Аноним 02/08/20 Вск 02:29:46 #134 №225923765 
>>225923642
>я бы выносил свойства изначально в отдельные таблицы
Так они вынесены.

>я например 200К чистыми
Вот он, пример того самого "иксперда". Он якобы получает 200к, но не может написать простейший запрос. То есть, он не может пройти мимо треда, не может не похвастаться, не может не написать пост, но примитивный запрос написать не может. Он даже суть оп-поста не понял
Аноним 02/08/20 Вск 02:30:19 #135 №225923791 
>>225923751
Конкретно у тебя ничего не просят. Тебе нассали в рот, можешь идти спать, ток не сглатывай))
Аноним 02/08/20 Вск 02:31:57 #136 №225923850 
>>225923765
>суть оп-поста не понял
Ну так на двач повыебываться приходят, а не задачи решать, вникнуть в задачу это уже работа, а я работать не хочу, хочу графоманить.
Аноним 02/08/20 Вск 02:33:21 #137 №225923888 
>>225923850
Не надо оправдываться, маня, все уже поняли, что ты тупой просто)
Аноним 02/08/20 Вск 02:40:45 #138 №225924120 
>>225923888
я те ща ебало набью, щенок бля
Аноним 02/08/20 Вск 02:42:50 #139 №225924192 
>>225907455 (OP)
Ебать, я только что с удовольствием просмотрел видео с тик-тока.
Чего только не случается.
Аноним 02/08/20 Вск 02:45:37 #140 №225924294 
>>225924120
Ты щас своим ртом мой хуй изнасилуешь, маня)
Аноним 02/08/20 Вск 02:46:51 #141 №225924335 
>>225924294
Кончил в твою мамашу уже))
Аноним 02/08/20 Вск 03:15:53 #142 №225925492 
>>225924335
Ты кроме своего кулака никого не ебал, чел)
Аноним 02/08/20 Вск 03:52:47 #143 №225926612 
>>225911432
предлагаю сделать бочку и перезагрузить комп, инфа сотка код скомпилится
Аноним 02/08/20 Вск 04:02:22 #144 №225926828 
>>225907455 (OP)
Судя по вопросу, ты только начал изучать бд. Айти пузырь скоро лопнет, еблан, беги от туда.
Аноним 02/08/20 Вск 04:03:08 #145 №225926850 
>>225915706
>and `price`>50 and `price`<5000 and
это желательно в скобки поставить
Аноним 02/08/20 Вск 04:21:40 #146 №225927381 
>>225926850
ок
Аноним 02/08/20 Вск 04:45:14 #147 №225928092 
>>225907455 (OP)
Слушай, ну если я правильно твою схему бд осознал, то для каждой группы фильтров можно писать ещё один лефт джойн с отдельным алиасом и на него уже условия вешать через или. Можно через in (,,), будет короче запись. Ещё можно тоже по группам собирать запрос, как в первом случае, и каждый объединить через union.
А какая у тебя бд? Откуда эти бэкквоты в именах?
Сорян, с телефона в 5 утра ппц неудобно печаткать скл.
Аноним 02/08/20 Вск 04:50:13 #148 №225928255 
>>225928092
Помоги, плез.

>А какая у тебя бд? Откуда эти бэкквоты в именах?
mysql
Аноним 02/08/20 Вск 05:02:25 #149 №225928622 
>>225928255
Я щас не в состоянии с телефона запрос напечатать. В телеге группа есть Обсуждение задач по SQL, напиши туда вопрос, а то тред утонет и печаль. Я завтра очнусь и напишу в ней, как я бы сделал. Ну или кто-то раньше ответит.
Задачи там если что ооочень странные, не обращай внимания.
И если в состоянии, запили на каком-нибудь sqlfiddle ддл и данные примера, чтобы точно об одном и том же говорить.
Окай?
Аноним 02/08/20 Вск 05:05:06 #150 №225928707 
>>225928622
>В телеге группа есть Обсуждение задач по SQL
Я постараюсь найти, но может есть ссылка?

>И если в состоянии, запили на каком-нибудь sqlfiddle ддл и данные примера
Вот http://sqlfiddle.com/#!9/3a7cbc/1
Так только структура, данные что-то не влезли, я хз
Аноним 02/08/20 Вск 05:10:39 #151 №225928858 
>>225928707
Я признаться хз как с мобильного клиента телеги айди чатика скопировать, там на иконке синяя банка с буквами sql. Прям по названию, она там одна такая.
Аноним 02/08/20 Вск 05:11:41 #152 №225928890 
>>225928858
Я хз какую-то группу нашел, но не понятно как там писать вопросы и как потом искать решение, если я отойду
Аноним 02/08/20 Вск 05:22:39 #153 №225929115 
image.png
>>225928890
Вот эта.
Да просто вопрос из оппоста туда напиши и ссулку на фиддл тоже добавь. Там два с половиной человека раз в три дня что-то пишут, вопрос точно не потеряется.
Аноним 02/08/20 Вск 05:23:31 #154 №225929135 
>>225929115
Ты адрес группы скопируй
Аноним 02/08/20 Вск 05:29:33 #155 №225929263 
>>225929135
А, сорян, это не отдельная группа, а обсуждалка от канала
sqlquestions
сначала к каналу, потом через дискасс в эту. У самой группы адреса походу нет.
Аноним 02/08/20 Вск 05:30:50 #156 №225929292 
>>225929263
И как, решают?
Аноним 02/08/20 Вск 05:30:57 #157 №225929294 
>>225929263
А ссылку на телеграм спамлист не пропускает запостить сука...
Аноним 02/08/20 Вск 05:33:45 #158 №225929373 
>>225929292
Да там бот какой-то постит вопросы по мсскл от которых у всех жопа горит.
А так кто-то что-то бывает спрашивает, какой-нибудь мимокрокодил ответит, бывает даже по делу.
Аноним 02/08/20 Вск 05:37:11 #159 №225929441 
>>225929373
>Да там бот какой-то постит вопросы по мсскл от которых у всех жопа горит.
А что за вопросы, чего жопа-то горит?
Аноним 02/08/20 Вск 05:39:11 #160 №225929472 
image.png
image.png
>>225929135
Короч, вот этот канал, у него через кнопку чатик без адреса, вот туда напешы
Аноним 02/08/20 Вск 05:43:05 #161 №225929529 
>>225929441
Да плохо сформулированные, без указания рсубд или настолько примитивные, что такое, наверное в шараге на курсе по аксесу не спросят никогда. Примерно как в том анекдоте про "сила тока измеряется в амперах: да есть и так точно"
Аноним 02/08/20 Вск 05:50:49 #162 №225929651 
>>225929529
А мой вопрос как? Норм?
Аноним 02/08/20 Вск 06:05:02 #163 №225929952 
бумп
comments powered by Disqus

Отзывы и предложения