Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lisa

selecionar 4 tabelas

Recommended Posts

to fazendo um select em 4 tabelas ... funciona, mas não pega todos os dados, alguem pode ajudar??

 

segue

 

select CALL_REQ.ref_num, CALL_REQ.summary , NET_RES.nr_prim_search_key, PROB_CTG.sym , CALL_REQ.priority , CALL_REQ.string1, ROOTCAUSE.sym, CALL_REQ.status , CALL_REQ.open_date, CALL_REQ.close_datefrom call_req ,PROB_CTG, rootcause ,net_reswhere call_req.category = PROB_CTG.persid and call_req.rootcause = rootcause.id and CALL_REQ.affected_rc = NET_RES.id andCALL_REQ.group_id = '451884'

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele realmente nao usou o JOIN mas tentou fazer um relacionamento aliso nao sei se seria equivalente

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao voce diz que nao pega os registros corretamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

equivalente nem tanto pois perde desempenho desta forma. Não pega todos os dados? então você não está usando o "relacionamento" correto...explique melhor como estão retornando os dados e como deveria ser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi jonathandj, quando eu falo equivalente ao inner join, estou me refirindo ao resultado final, e não do desempenho do banco.. com certeza o inner join tem um desempenho melhor...Mas vamos la...tenho 4 tabelas:TABELA1id_tabela1nomedescrid_tabela2 - FKid_tabela3 - FKid_tabela4 - FKTABELA2id_tabela2nomeTABELA3id_tabela3nomeTABELA4id_tabela4nomePreciso dos dados dessas 4 tabelas, porem o retorno da minha query é incompleta, no sentido de não serem exibidos todos os registros do banco.Eu sei que minha base de dados possuem 15 registros nesta condição, e so me é exibida 3 por exemplo. não exibem todos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo seu exemplo das tabelas tente assim

 

SELECT TABELA1.nome, TABELA1.descr, TABELA2.nome, TABELA3.nome, TABELA4.nome, TABELA1.id_tabela1FROM ((TABELA1 INNER JOIN TABELA2 ON TABELA1.id_tabela2 = TABELA2.id_tabela2) INNER JOIN TABELA3 ON TABELA1.id_tabela3 = TABELA3.id_tabela3) INNER JOIN TABELA4 ON TABELA1.id_tabela4 = TABELA4.id_tabela4WHERE (((TABELA1.id_tabela1)="&variavelInteiro&"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola jonathandj, obrigada pela ajuda.. descobri o que esta acontecendo:baseado no exemplo postado, pode acontecer da minha TABELA1 não possuir o id_tabela3 da TABELA3 preenchido.. pois é um relacionamento 1:n ... ai "falta" registro... como disse antes.. tendo 15 registros só aparece 3... queria que aparecesse tudo.. mesmo se o campo estiver vazioe ai, tem resolver isso? tem alguma dica?obrigada novamente....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola jonathandj, obrigada pela ajuda.. descobri o que esta acontecendo:baseado no exemplo postado, pode acontecer da minha TABELA1 não possuir o id_tabela3 da TABELA3 preenchido.. pois é um relacionamento 1:n ... ai "falta" registro... como disse antes.. tendo 15 registros só aparece 3... queria que aparecesse tudo.. mesmo se o campo estiver vazioe ai, tem resolver isso? tem alguma dica?obrigada novamente....

Olá Lisa,No join entre a tabela1 e a tabela em que essa situação pode acontecer, troque o INNER JOIN por LEFT OUTER JOIN ou RIGHT OUTER JOIN, dependendo de que lado estiver a tabela que permite o null.Abraços! =)Cassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.