Left Join com vários campos da mesma tabela
Seguinte: Para montar um contrato de locação, tenho duas tabelas. A primeira que é a do contrato, possui alguns campos de relacionamento como id_locador, id_locatario, id_fiador1, id_fiador2 dentre outros. Esses campos são relacionados a uma tabela de pessoas: id, nome, endereco etc. Então todas as pessoas envolvidas no contrato, vem da mesma tabela "pessoas", como fazer esse relacionamento?
Desde já, agradeço a quem interessar possa...
Desde já, agradeço a quem interessar possa...
Marques Magalhães
Curtidas 0
Melhor post
Npi Tecnologia
11/01/2017
Tenta isso:
SELECT contrato.id_locador, locador.nome AS locador_nome, contrato.id_locatario, locatario.nome AS locatario_nome, contrato.id_fiador1, fiador1.nome AS fiador1_nome, contrato.id_fiador2, fiador2.nome AS fiador2_nome FROM contrato LEFT OUTER JOIN pessoa locador ON contrato.id_locador = locador.id LEFT OUTER JOIN pessoa locatario ON contrato.id_locatario = locatario.id LEFT OUTER JOIN pessoa fiador1 ON contrato.id_fiador1 = fiador1.id LEFT OUTER JOIN pessoa fiador2 ON contrato.id_fiador2 = fiador2.id
GOSTEI 2
Mais Respostas
Marques Magalhães
11/01/2017
Bacana, funcionou 100%.
Cada contrato possui um ou dois fiadores, eu preciso reunir todos os fiadores dos
contratos em um relatório (relação de fiadores) "juntar fiador1 e fiador2 na mesma coluna",
é possível fazer isso?
Obrigado pela valiosa colaboração!
Cada contrato possui um ou dois fiadores, eu preciso reunir todos os fiadores dos
contratos em um relatório (relação de fiadores) "juntar fiador1 e fiador2 na mesma coluna",
é possível fazer isso?
Obrigado pela valiosa colaboração!
GOSTEI 0
Npi Tecnologia
11/01/2017
tenta isso:
obs: como não sei o nome do campo que guarda o identificador do contrato, chamei-o do código.
neste exemplo estou trazendo os fiadores do contrato de código 1
SELECT contrato.id_fiador1, fiador1.nome FROM contrato INNER JOIN pessoa fiador1 ON contrato.id_fiador1 = fiador1.id WHERE contrato.codigo = 1 UNION SELECT contrato.id_fiador2, fiador2.nome FROM contrato INNER JOIN pessoa fiador2 ON contrato.id_fiador2 = fiador2.id WHERE contrato.codigo = 1
obs: como não sei o nome do campo que guarda o identificador do contrato, chamei-o do código.
neste exemplo estou trazendo os fiadores do contrato de código 1
GOSTEI 0
Lucas
11/01/2017
Bom dia, alguem pode me dar uma luz<br />
<br />
tenho essa query abaixo:<br />
<br />
SELECT bairro.ba_bairro AS ba_bairro, count(cadastro.ca_bairro) AS count_ca_outro_bairro, sum(cadastro.ca_bairro) AS sum_ca_bairro FROM (cadastro LEFT JOIN bairro ON bairro.ba_codigo=cadastro.ca_bairro) GROUP BY bairro.ba_bairro<br />
<br />
<br />
que faço uma mysql_fetch_assoc() mostrando o nome do bairro x e o total de registro dele na tabela cadastro<br />
<br />
<br />
sendo que o mesmo existe mas 10 campos chamados:<br />
<br />
<br />
ca_outro_bairro_1,ca_outro_bairro_2,ca_outro_bairro_3,ca_outro_bairro_4,ca_outro_bairro_5,ca_outro_bairro_6,ca_outro_bairro_7,ca_outro_bairro_8,ca_outro_bairro_9,ca_outro_bairro_10<br />
<br />
<br />
eu queria somar todos <br />
pois um cadastro pode morar no bairro x mas tem conhecido no bairro y<br />
<br />
ai eu quero ter um relatório aonde mostra o total por bairro que some o total de cadastro nessas colunas relacionadas acima<br />
<br />
<br />
exemplo o bairro : bairro "centro" existe 20 cadastro na coluna ca_bairro e na coluna ca_outro_bairro_1 tem 10 registro entao no bairro centro vai mostra 30 registro e assim com as outras colunas <br />
<br />
<br />
tenho essa query abaixo:<br />
<br />
SELECT bairro.ba_bairro AS ba_bairro, count(cadastro.ca_bairro) AS count_ca_outro_bairro, sum(cadastro.ca_bairro) AS sum_ca_bairro FROM (cadastro LEFT JOIN bairro ON bairro.ba_codigo=cadastro.ca_bairro) GROUP BY bairro.ba_bairro<br />
<br />
<br />
que faço uma mysql_fetch_assoc() mostrando o nome do bairro x e o total de registro dele na tabela cadastro<br />
<br />
<br />
sendo que o mesmo existe mas 10 campos chamados:<br />
<br />
<br />
ca_outro_bairro_1,ca_outro_bairro_2,ca_outro_bairro_3,ca_outro_bairro_4,ca_outro_bairro_5,ca_outro_bairro_6,ca_outro_bairro_7,ca_outro_bairro_8,ca_outro_bairro_9,ca_outro_bairro_10<br />
<br />
<br />
eu queria somar todos <br />
pois um cadastro pode morar no bairro x mas tem conhecido no bairro y<br />
<br />
ai eu quero ter um relatório aonde mostra o total por bairro que some o total de cadastro nessas colunas relacionadas acima<br />
<br />
<br />
exemplo o bairro : bairro "centro" existe 20 cadastro na coluna ca_bairro e na coluna ca_outro_bairro_1 tem 10 registro entao no bairro centro vai mostra 30 registro e assim com as outras colunas <br />
<br />
GOSTEI 0