Fonseca
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 15:07 hs
Já li o help do VB e não consegui enterder o INNER JOIN, gostaria, se possível, que alguém me desse uma breve explicação e como montar o comando de acordo com as tabelas abaixo, selecionando-se todos os campos exceto o campo Função da Tab3. A Tab3 é lida de acordo com o campo Gru da Tab2, que é lida de acordo com o campo Con da Tab1. Tab1: Cod, Con, Nome Tab2: Cod, Gru, Nome Tab3: Cod, Nome Obrigado pela atenção
|
|
|
|
Rochª
|
RIO DE JANEIRO RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 16:49 hs
Seria Select * from tab1 , tab2, tab3," & _ " tab1 left join tab2 ON tab1.cod = tab2.cod, " & _ " tab2 left join tab3 ON tab2.cod = tab3.cod " & _ " Where tab1.cod = 10"
Acho que não da para fazer lendo do gru e con pois esses campos não tem relacionamento nos outros arquivos, teria que ser algo Tab1: Cod, Con, Nome Tab2: Cod, CON, Gru, Nome Tab3: Cod, GRU, Nome Para que um pudesse ler a outra tabela. Talbez eu tenha entendido errado. Fiz lendo do COD pois este campo possui um relacionamento entre as tabelas. Veja se da para entender. Ele ira pegar todos os cod 5 de todas as tabelas.
__________________________________________________________________________ Qualquer coisa post Rochª
|
|
|
RARS
|
AMERICO BRASILIENSE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 17:24 hs
vou tentar t explicar com um sql Select C.*,CI.* from CLiente C Inner Join Cidade CI On Ci.Codigo=C.Codigo_Cidade onde C e Ci é a abreviacao das tabelas Cliente e Cidade que iram ser comparadas pelos Campos Ci.codigo e C.Codigo_cidade Qualquer duvida poste novamente ou envie um e-mail
|
|
|
Vaughyman
|
RIO DE JANEIRO RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 20:15 hs
Caro Fonseca, Se não está acostumado com Inner Join em tabelas, segue aqui um pequeno macete que me fez entender e aperfeiçoar essa técnica, não desprestigiando meus amigos de forum... Sei o quanto é complicado produzir boas consultas e o proprio Access nos dá a maior ferramenta para se aprender a entender e cria-las sem misterio. Sempre que quiser testar, criar, Juntar, Atualizar e etc qualquer SQL, sugiro que vc construa no ambiente de consulta do Access. Primeiro em forma visual. depois ateste para ver se os recordsets estão corretos. Se estiverem, transforme-a em SQL (o Access faz com a maior tranquilidade) e cole-a em seu codigo VB. Pare alguns minutos e analise aquilo que foi produzido. Vc irá gastar menos tempo e estudara mais. Em caso de duvida, tai meu email, ICQ, certidao de Obito e tudo mais para te ajudar nessa caminhada. Abração
|
|
|
Rochª
|
RIO DE JANEIRO RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 20:42 hs
Existe outra forma de fazer o join. Seria com o WHERE. Select * from tab1 , tab2, tab3," & _ " tab1 left join tab2 ON tab1.cod = tab2.cod, " & _ " tab2 left join tab3 ON tab2.cod = tab3.cod " & _ " Where tab1.cod < 10" com where seria
Select * from tab1 , tab2, tab3," & _ "where tab1.cod < 10 and tab1.cod = tab2.cod and " & _ " tab2.cod = tab3.cod " Desta forma ele ira devolver a mesma coisa. O problema e que se não existir o registro no TAB3 ele não ira devolver o registro. Tipo tab1 tab2 tab3 1 1 1 2 2 Este não sera retornado pois não existe o reg no TAB3 3 3 3
__________________________________________________________________________ Qualquer coisa post Rochª
|
|
|
Fonseca
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 05/05/2004 13:10 hs
Obrigado pela explanação, vou testa-las. []´s
|
|
|
|