72 похожих чатов

Всем привет. Как реализовать поиск элементов по критериям в SQLITE? Есть

три таблицы - Item, Detail и DetailsItem. Между собой они создают связь many-to-many. Каким образом можно реализовать поиск Item по определенным Detail.

Например, есть молоток. Он состоит из нескольких частей, таких как: железо, дерево, медь. Мне нужно найти этот молоток по деталям. Например, я вбиваю параметры такие как дерево и медь по которым точно найдется нужный элемент, но если я добавлю дополнительный параметр такой как силикон, то данный элемент отбрасывается.

Также по этим параметрам могут находиться другие элементы, которые содержат в себе железо, дерево и медь, но если один из параметров не совпадает, то элемент должен не отображаться в итоговой выборке.

SELECT item.idItem, detail.idDetail, detail.title FROM item
JOIN details_item ON item.idItem = details_item.idItem
JOIN detail ON detail.idDetail = details_item .idDetail
WHERE detail.title in ("Железо","Дерево","Медь")

Данный запрос находит элементы в которых есть эти детали, но так же отображаются другие элементы, которые имеют совпадение материалов только 1 из 3. Так же заранее неизвестно сколько будет параметров для поиска, так как в in (...) будет передаваться массив.

Я голову сломал как это реализовать в SQLITE и возможно это реализовать одним запросом?

5 ответов

9 просмотров

Путем составления запроса и его выполнения

По массивы забудь сразу

Я детально смогу посмотреть только вечером поздно

Ddl таблиц хорошо бы

Там схема зала такая Select ... From item I Where exists ( select 1 from item detail join detail on .... Where Условие корреляции And detail material = 'wood' ) And exists ( select 1 from item detail join detail on .... Where Условие корреляции And detail color = 'Green' ) And .... Что-то типа этого

Похожие вопросы

Обсуждают сегодня

А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Возможно речь идёт про сворачивание текста функций в редакторе кода?
George
9
@nerzh 1) а как сделать так что бы при приеме сообщений бот игнорировал/убирал форматирование? Есть стандарные функции для убирания форматирования текста? 2) Возможно ли ...
Куся 🌿⃤ __UKS
5
Ребят, привет. Интересует вопрос: есть ли способ получить доступ к WebView в Linux? Рылся-ковырялся, решения не нашел. Объясню сразу задачу, возможно, скажете, что копаю не в...
advanc3d
13
тогда вопрос по вебхукам - необходимо ли иметь вебсервер на белом айпишнике что б пользоваться вебхуками? или можно на домашнем компе гонять?
Куся 🌿⃤ __UKS
3
Что нового в Xcode 16 Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное н...
✌️(´ヮ`)
1
Напомните пожалуйста, v1.1 работает на PHP 8.2?
Ross
7
Надо ли говорить, что нужно делать локальные зеркала всего что надо вам для работы, что бы не получилось, как с Docker одним прекрасным утром? 🌝 США запрещают предоставление ...
Alex Sherbakov
6
🙋‍♂️Как вы относитесь к обновлению либки под async/await в виде новой мажорной версии? Я так понял EventLoopFuture доживает последние дни. Я бы в версии на EventLoopFuture уж...
iMike
3
Карта сайта