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 ответов

17 просмотров

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

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

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

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 .... Что-то типа этого

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта