Я был довольно озадачен некоторое время, пытаясь получить результаты из одной из наших таблиц на основе других результатов, и не возвращая более одной строки для каждого значения, мне сложно объяснить, поэтому я дам пример.
У нас есть значения, например, APPLES. Каждое яблоко имеет свой серийный номер, SERIAL. для некоторых ПРИЛОЖЕНИЙ существует несколько (до 6) значений SERIAL.
ID APPLE SERIAL
2052 5035 1
2055 5035 4
2058 5035 8
2070 5040 5
В своих результатах я хочу вернуть каждый APPLE один раз и присвоить ему все серийные номера, например:
APPLE SERIAL_1 SERIAL_2 SERIAL_3 SERIAL_4
5035 1 4 8
5040 5
Я попытался сделать запрос, который в основном объединяет одну и ту же таблицу 4 раза, указав serial_x not in (другие серийные номера). Проблема в том, что он даст несколько результатов, например:
APPLE SERIAL_1 SERIAL_2 SERIAL_3 SERIAL_4
5035 1 4 8
5035 1 8 4
5035 4 1 8
5035 4 8 1
5035 8 1 4
5035 4 4 1
5040 5
Это очевидно, потому что apple 5035 с другим серийным номером встречается в таблице несколько раз, и он получает все возможные комбинации трех назначенных ему серийных номеров. Я уверен, что есть простой способ сделать это, но я пытался в течение долгого времени и не смог добиться хорошего результата. Кто-нибудь может помочь?