Boa tarde, sou programador jr e tudo que aprendi ate hoje sobre SQL foi na necessidade e agora estou com uma duvida sobre relacionamentos n para n.
A situação é que eu tenho uma tabela de designações e uma tabela de operadoras e uma designação pode ter muitas operadoras e uma operadora pode ter muitas designações, sendo assim criei a tabela designacao_operadora que recebe idOperadora e idDesignacao.
A designação de id 8 possui 4 operadoras alocadas e na minha consulta SQL esta trazendo corretamente os dados da designação de id=8 mas traz as operadoras separadamente e isso acaba tornando o numero de designaçoes retornadas igual ao numero de operadoras alocadas para aquela designaçao, gostaria de saber como posso fazer para trazer todas as operadoras e os dados da designaçao na mesma linha sem ficar repetindo.
a consulta:
SELECT tbldesignacoes.idDesignacao, tblclientes.idCliente as idCliente, nomeCliente as selNomeCliente, enderecoPA as txtEnderecoPA, EstadosA.nomeEstado selEstadoPA, EstadosA.idEstado idEstadoA, CidadeA.idCidade idCidadeA, EstadosB.idEstado idEstadoB, CidadeB.idCidade idCidadeB, CidadeA.nomeCidade selCidadePA, enderecoPB as txtEnderecoPB, operadora.nomeOperadora,
EstadosB.nomeEstado selEstadoPB, CidadeB.nomeCidade selCidadePB, nome as selUnidade,tblunidadecircuitos.idUnidadeCircuito as idCircuito, usCircuito as selUs, velocidadeCircuito as txtVelocidade, designacaoParOper as txtDesigParOper, contatoParOper as txtContatoParOper, colocationParceiro as txtColocationParceiro, tbloperadoralastmile.idOperadoraLastMile as idOperadoraLM, tbloperadoralastmile.nomeOperadoraLastMile as selOperadoraLM, designacaoOperadoraLastmile as txtDesignacaoLM, CNPJ as txtCNPJ, anexoDesignacao as txtAnexo, ativacaoDesignacao as txtDataAtivacao, contratoDesignacao as txtContrato, ssDesignacao as txtOrderServico,
designacaoParOper as txtDesigParOper, colocationParceiro as txtColocationParceiro, contatoParOper as txtContatoParOper,
nomeOperadoraLastmile as selOperadoraLM, designacaoOperadoraLastmile as txtDesignacaoLM, CNPJ as txtCNPJ, contratoDesignacao as txtContrato,
anexoDesignacao as txtAnexo, ssDesignacao as txtOrderServico, ativacaoDesignacao as txtDataAtivacao, designacao as txtDesignacao, comentariosDesignacao as txtComentarios, razaoCliente as txtRazaoSocial, nomeFantasiaCliente as txtNomeFantasia
FROM
tbldesignacoes
INNER JOIN
tblCidades CIDADEA ON tbldesignacoes.idCidadePA = CIDADEA.idCidade
INNER JOIN
tblEstados ESTADOSA ON tbldesignacoes.idEstadoPA = ESTADOSA.idEstado
INNER JOIN
tblCidades CIDADEB ON tbldesignacoes.idCidadePB = CIDADEB.idCidade
INNER JOIN
tblEstados ESTADOSB ON tbldesignacoes.idEstadoPB = ESTADOSB.idEstado,
designacao_operadora
INNER JOIN tbloperadoras operadora ON designacao_operadora.idOperadora = operadora.idOperadora,
tblclientes,tbloperadoralastmile,tblunidadecircuitos
WHERE
tbldesignacoes.idCliente = tblclientes.idCliente
AND
tbldesignacoes.idOperadoraLastmile = tbloperadoralastmile.idOperadoraLastMile
AND
tbldesignacoes.idUnidadeCircuito = tblunidadecircuitos.idUnidadeCircuito
AND
designacao_operadora.idDesignacao = 8
AND
tbldesignacoes.idDesignacao = 8
Como disse tudo que sei sobre junção de tabelas aprendi na necessidade e nunca fiz um curso especifico sobre isso e nunca achei um bom tutorial tambem, imagino que minha consulta realmente esteja errada pois o que eu quero é que tudo fique numa unica linha ou entao que fique da seguinte forma:
a linha com todos os dados da designaçao e do lado venha uma tabela com todas as operadoras mesmo que seja em mais de uma linha mas que pelo menos seja numa tabela separada, eu mecho mais com codigo e componentes graficos e javascript, nao entendo muito de SQL mas entendo ingles perfeitamente entao se alguem tiver um tutorial maravilhoso por mais complexo que seja e puder me passar, gostaria de um tutorial bem explicativo sobre como fazer select, update e delete em tabelas n para n mas se tiverem uma boa soluçao para a consulta que eu postei acima seria bem vindo tambem por mais complexa que seja eu dedico um tempo pra tentar entender, preciso muito dessa ajuda pra dar continuidade ao sistema, abração