Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Left Join entre 2 tabelas, por favor me ajudem!

Queria que esse SQL JOIN abaixo  fosse feito no QLIKVIEW, como faço ?  Obs: Estou trazendo todos os resultados, mesmo os que não tem registros.

SELECT * FROM SZC010 AS SZ

  LEFT JOIN SC5010 AS SC

  ON SZ.ZC_CODCUR = SC.C5_CURSO

  ORDER BY SZ.ZC_CODCUR

tentei isso, mas nada feito:

SQL USE CONEXAO15;

TabelaA:

SQL SELECT * FROM SZC010;

OUTER JOIN (TabelaA)

SQL SELECT * FROM SC5010;

Labels (6)
11 Replies
maiconmello
Creator III
Creator III

Kleber boa tarde:

Então, fará o seguinte :

Load  campo1 as campochave , * ;

SQL select * from SZC010;

left join

Load campo1 as campochave * ;

SQL Select * from SC5010;

OBS: Se tiver mais campos que formam a chave, faça ela composta:

Exemplo : Campo1 &'-'& Campo2 &'-'& Campo3 as PK_Campo,*;

                   SQL select * from SZC010;

Faça isso para a tabela SC0510.

Not applicable
Author

Obrigado Maicon pela resposta breve,

Porem cada tabela tem um campo com mesmo conteudo porem nomes diferentes,  na SZC010 o codigo se chama ZC_CODCUR e na tabela SC5010 ela se chama C5_CURSO,   como faço para fazer o left join da SZC010 + SC5010 apenas se  ZC_CODCUR = C5_CURSO   ????

Clever_Anjos
Employee
Employee

Se as duas tabelas existem no mesmo banco de dados, mantenha o JOIN no banco, acredite, bem melhor

maiconmello
Creator III
Creator III

São situações e situações, que necessitam ser avaliadas na questão do join e do left join.

Então vamos la a sua dúvida :

Faria assim :

Cursos:  //Nome da Tabela

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join ou join //fica a seu critério e avalie a necessidade.

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;

Seria isso !

Not applicable
Author

Como fazer o join unindo 3 tabelas.  Obs:  cada tabela tem um nome diferente, porem mesmo conteudo ?  Quero trazer tudo das 3 tabelas (select *) que conferem com o mesmo codigo,  mesmo se tiver nulo/em branco. (quem não comprou tambem deve estar incluido na junção)

Como faria ?  Seria quase isso ?

SZC010 = é a descricao dos cursos

SZ1010 = contem os professores e alunos dos cursos

SC5010 = contem somente quem faturou/comprou algum produto nosso, seja aluno ou professor.

SELECT *

FROM SZC010 AS SZC

  LEFT JOIN SZ1010 AS SZ1

        ON SZ1.Z1_CODCUR = SZC.ZC_CODCUR

  LEFT JOIN SC5010 AS SC5

        ON SC5.C5_CURSO = SZ1.Z1_CODCUR

WHERE SC5.C5_CURSO=SZ1.Z1_CODCUR

maiconmello
Creator III
Creator III

Cleber , vamos pensar em Qlik :

Faria assim :

Cursos:  //Nome da Tabela , é dado o nome que quiser

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join (Cursos)

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;


Left join (Cursos)


Load Campo as PK_CodCurso, * ;

SQL select * from tabela3;


Isso vai atender o que precisa. Observe que o campo PK_CodCurso eu criei. Nome tabela Cursos, esse nome será  o que vai para a memória.


Sempre passa somente os campos que vai precisar no load e no SQL, assim a carga fica mais rápida.


Exemplo :

Load Campo as PK_CodCurso, campo2, campo3 ;

SQL select campo,campo2,campo2 from tabela3;

Not applicable
Author

Sim, mas está trazendo somente os 1783 registros da tabela SZC010,  na tabela SZ1010 tem 27mil registros e a tabela SC5010 tem 630mil registros.

O que queria era desses 1783 registros de cursos, trouxesse junto os multiplos registros de cada um deles nas outras 2 tabelas, o que não está ocorrendo, veja:

Cursos:  //Nome da Tabela , é dado o nome que quiser

Load ZC_CODCUR as PK_CodCurso, * ;

SQL Select * from  SZC010;

Left join (Cursos)

Load Z1_CODCUR as PK_CodCurso, * ;

SQL select * from SZ1010;

Left join (Cursos)

load C5_CURSO  as PK_CodCurso, *;

SQL select * from SC5010 ;

maiconmello
Creator III
Creator III

Kleber, use o Right join no lugar do left ou inverta as tabelas.

Exemplo : Como esta ali, mas a com mais registro fazendo a primeira leitura , segunda com mais e a terceira com menos.

Not applicable
Author

Vc quer dizer  pegando a tabela com mais registros, ai right join, depois medios registros, right join e por ultimo a tabela com menos registro e pronto ?