Я пишу приложение и ищу конкретный оператор выбора. Ситуация в моей базе данных MYSQL является следующее:Сложный оператор выбора с SQL (mysql)
- Каждый запись может иметь несколько единиц. Одна единица относится только к одной записи.
- В каждом блоке может быть несколько подразделений . Одна субъединица может быть связана с несколькими единицами.
Я понял эту ситуацию со следующими таблицами:
- запись ID (INT)
- блок: идентификатор (целое), entry_id (интермедиат)
- unit_subunits: unit_id (int), subunit_id (int)
- подразделение: идентификатор (целое)
То, что я хочу сейчас следующее: Я хочу, чтобы пользователь вводит subunit.id и получает список всех entry.ids, которые содержат входной subunit.id, а а также все другие subunit.ids, которые связаны с найденными entry.ids. Результат должен lõoke как:
(вход = субъединицей 5)
entry.id | subunit.id
запись 1 | субъединица 5
запись 1 | субъединица 26
запись 2 | субъединица 2
запись 2 | субъединица 5
...
Чтобы получить только entry.ids, которые связаны с входным subunit.id, было легко. Но я не смог объединить eveything в один оператор SQL. Я решил это в своем приложении, создав два разных оператора (причем второй оператор выполняется для каждого найденного элемента entry.id). Есть ли элегантное решение, чтобы все это было в одном заявлении sql?
спасибо!
UPDATE 1
Чтобы избежать недоразумений, как в комментарии к этому вопросу: Существует на самом деле набор данных. Но для того, чтобы сделать вопрос как можно более теоретическим, общим и понятным, я уменьшил его только до «идентификаторов».
Результирующий набор без набора данных является таким же глупым, как и бессмысленным. – Strawberry
Уважаемый @Strawberry, что вы в действительности имеете в виду? Конечно, есть набор данных, и на самом деле entry.id является уникальным varchar, а также subunit.id. Но чтобы поставить вопрос как теоретический и простой (и, следовательно, как можно более понятным), я просто сводил его к «id». Или вы имеете в виду, я должен предоставить вам данные? Если это первый случай, я был бы рад услышать вашу конструктивную критику. – Rolch2015