Tenho uma coluna em uma tabela que contém vários valores de identificadores. Uma das outras colunas na tabela identifica o tipo de ID ao qual os valores estão associados. Há também uma coluna de ID de chave na tabela (que é outro valor de ID). O que quero realizar é identificar uma lista de IDs de chave na instrução where e, com base nisso, retornar 2 valores de ID diferentes como suas próprias colunas (com base no Id_type como cabeçalho) junto com o ID da chave. Veja abaixo
Table: external_ids
| id_type | identifier | key_id |
| program.id | 123456 | abcde |
| partner.id | 5432 | abcde |
| product.id | 6KWt1Qo04O2M | abcde |
| aps | EP013836200004 | abcde |
| program.id | 789012 | defghi |
| partner.id | 9876 | defghi |
| product.id | 9bb72eb42a93f | defghi |
| aps | EP012795410004 | defghi |
Esta é a consulta que estou usando (sei que não funciona):
select distinct
identifier, identifier, key_id
from external_ids
where key_id in ('abcde','defghi')
and id_type = (select identifier from external_ids
where id_type in ('aps','product.id')
Minha saída desejada seria:
| aps | product.id | key_id |
| EP013836200004 | 6KWt1Qo04O2M | abcde |
| EP012795410004 | 9bb72eb42a93f | defghi |