Eu tenho tabelas com a seguinte estrutura
MesaPC
não | nome | festa19 | festa24 |
---|---|---|---|
1 | A | 1 | 1 |
2 | B | 1 | 2 |
As colunas party19 e party24 são restrições de chave estrangeira para TableParty.no
MesaFesta
não | nome |
---|---|
1 | X |
2 | S |
Minha consulta
select
TablePC.name
,TableParty.name as A
,TableParty.name as B
from TablePC
join TableParty on TableParty.no = TablePC.party19 and TableParty.no=TablePC.party24;
Eu preciso da saída como
A | X | X |
B | X | S |
Não consigo obter essa saída. Qualquer ajuda é apreciada.
WR
Você precisa de duas junções, uma para cada coluna de chave estrangeira:
Nota: Eu uso junções à esquerda acima porque, no caso de um nome na
TablePC
coluna não ter correspondênciasTableParty
para ambosparty19
,party24
essa linha ainda estaria no conjunto de resultados. As junções internas removeriam esses registros não correspondentes no arquivoTablePC
.Você pode tentar usar uma subconsulta correlacionada para obter o resultado desejado. Aqui está um exemplo de consulta que usa uma subconsulta correlacionada:
Usando uma subconsulta correlacionada como a acima, você poderá obter a saída desejada.