Мне нужна помощь в оптимальном структурировании SQL-запроса. У меня есть модель, как это:
Присоединение и фильтрация отношений «один ко многим»
Я пытаюсь своего рода объединение между таблицами NON_NATURAL_PERSON
и NNP_NAME
. Поскольку у меня есть много имен в таблице NNP_NAME
для одного человека, я не могу делать один на один SELECT * from NON_NATURAL_PERSON inner join NNP_NAME
и т. Д. Таким образом, я получаю дополнительные строки для каждого имени, которое есть у одного человека.
данных в таблицах:
Как продлить этот запрос, чтобы получить строки, отмеченные красным на картинке показано ниже? Мои критерии запроса wannabe: Всегда присоединяйте имя typeA только в том случае, если оно существует. Если нет, присоедините имя типаB. Если не существует имени соединения typeC.
SELECT nnp.ID, name.NAME, name.TYPE
FROM NON_NATURAL_PERSON nnp
INNER JOIN NNP_NAME name ON (name.NON_NATURAL_PERSON = nnp.ID)
любая конкретная причина, по которой вы отметили как 'mysql', так и' h2'? – sstan
@sstan № Я нацелен на универсальный SQL. Мои тестовые платформы - это MySQL и H2 – shx