У меня есть две таблицы. У одного есть сборки (сборка), а у другой таблицы есть компоненты (Компонент). Конкретный набор компонентов создает сборку. Некоторым сборкам требуется несколько копий компонента. Некоторые компоненты могут использоваться в разных сборках. На сборку не более восьми (8) отдельных компонентов.mysql запрос поиск родителя из записей детей
Я создал соединительную таблицу AssemblyComponent, которая создает «рецепты» для сборок.
Я хочу, чтобы иметь возможность собрать сборку на основе набора компонентов. Если компоненты не соответствуют какой-либо сборке, возвращается NULL.
Assembly
assemblyid INT
Component
componentid INT
AssemblyComponent
assemblyid INT
componentid INT
numberofcomponents INT
Так что цель состоит в том, чтобы иметь хранимую процедуру, которая будет принимать переменное число компонентов и вернуть узел (должна быть только один для данного набора компонентов), которые соответствуют набору компонентов. Я использую mysql 5.1.x, поэтому я не могу передать массив хранимой процедуре. Я бы просто создал восемь параметров IN и установил неиспользованные значения NULL.
Меня больше интересует, какой подход запроса использовать, а не фактически писать код процедуры в это время. Если мне нужно изменить структуру таблицы, я тоже могу это сделать. Благодарю.
Два вопроса: 1> Вы считаете это совпадением, если список указанных компонентов является подмножеством? например 4 компонента, указанные в качестве входных данных, и они соответствуют узлу, имеющему 5 компонентов. 2> Рассматривается ли число компонентов в сопоставлении? – Sameer
1. Нет. Количество компонентов и типов должно совпадать. –
2. Да, важно число –