Ir para conteúdo

POWERED BY:

Arquivado

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

Chakan

Selecionando três tabelas

Recommended Posts

Oi gente.

 

Eu to com um problema. Tenho três tabelas em 1 banco de dados:

 

Tabela AÉREO

 

Conteudo - Aviões

 

Tabela MARITIMO

 

Conteudo - Navios

 

Tabela CARGAS

 

Conteudo - Caminhões

 

Queria saber como que eu faço pra serem selecionados o conteudo das três, para serem utilizados em um sistema de busca.

 

Eu sei que com um só eh assim:

 

strsql = "SELECT * FROM [AEREO]"

Mas como fazer isso com 3?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT  A.*, M.*, C.*FROM  AEREO A , MARITIMO M , CARGAS C
Explicando::

 

Fiz um select em todas as tabelas, dando um "apelido" para as mesmas com as iniciais de cada uma.

 

Esse tipo de "apelido" pode ser qualquer letra, desde que repita antes do FROM

 

Então Ficou assim

 

SELECT  >> Selecione  A.*, M.*, C.* >> Todos os campos da tabelasFROM  AEREO A , MARITIMO M, CARGAS C >> listadas
O .* depois de cada letra, significa que você esta selecionando todos os registros da tabela correspondente

 

Tipo tabela AEREO, o "apelido" dela é a letra A então faço assim.

 

A.* >>Todos os registros

A.AVIOES >> Selecionado apenas o campo AVIOES da TABLE AEREO.

 

Ok??

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso de busca de diversas formas use INNER JOIN, fica mais facil entre tabelas...pesquise aki mesmo no forum sobre isso!Um abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado!Mas, com a sua explicação, surgiu uma outra dúvida.E se houverem, por exemplo, dois campos iguais em duas tabelas?Assim, supondo:AEREOConteudo AvioesMARITIMOConteudo AvioesComo fazer pra mostrar que um Avioes eh do AEREO e o outro eh do MARITIMO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu te recomendo a estudar as estruturas básicas dos comandos SQL como:SELECT, UPDATE, INSERT, INNER JOIN, LFET JOIN, DISTINCT, WHERE, ORDER BY, DESC, ASCcreio que com esses comandos bem definidos, você poderá resolver a maioria ou quase todos os seus problemas, já que a sua dúvida é uma dúvida simples de relacinamento.Procure na internet e após aprender a Linguagem SQL, você vai concluir seus projetos mais rápidos.Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando:SELECTA.* AS AREAO ,M.* AS MARITIMOFROMAEREO A, MARITIMO MEle selecionaria todos de cada tabela, ja fazendo a distinção?E vou dar uma olhada no Inner Join!

Eu te recomendo a estudar as estruturas básicas dos comandos SQL como:SELECT, UPDATE, INSERT, INNER JOIN, LFET JOIN, DISTINCT, WHERE, ORDER BY, DESC, ASCcreio que com esses comandos bem definidos, você poderá resolver a maioria ou quase todos os seus problemas, já que a sua dúvida é uma dúvida simples de relacinamento.Procure na internet e após aprender a Linguagem SQL, você vai concluir seus projetos mais rápidos.Att;

Eh vou dar 1 olhada em todos pra ver..hehe Tem uns ae que eu nao conhecia ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando:SELECTA.* AS AREAO ,M.* AS MARITIMOFROMAEREO A, MARITIMO MEle selecionaria todos de cada tabela, ja fazendo a distinção?

Todos não, somente das tabelas selecionadas....AEREO e MARITIMO.Uma sugestao!!Estude SQL pelo ACCESS cara!! lá você ira encontrar um monte de exemplos para "quase" todos os seus problemas!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todos não, somente das tabelas selecionadas....AEREO e MARITIMO.Uma sugestao!!Estude SQL pelo ACCESS cara!! lá você ira encontrar um monte de exemplos para "quase" todos os seus problemas!!

Então..isso q eu quis dizer..todo o conteudo das tabelas selecionadas..no caso tudo de AEREO e MARITIMO.SQL pelo ACCESS? Ok..vou ver ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perae Chakan, quais são os campos das tres tabelas, vamos por partes, que a gente te da um help pra construir o Inner Join!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perae Chakan, quais são os campos das tres tabelas, vamos por partes, que a gente te da um help pra construir o Inner Join!

Ok. Eu andei dando uma olhada ja no Inner Join. Mas preciso testar mais ehehBom, as 3 tabelas sao assim:AEREORegistroDataTituloIntertituloNoticiaMARITIMORegistroDataTituloIntertituloNoticiaCARGASRegistroDataTituloIntertituloNoticiaTodos tem os mesmos nomes nos seus conteudos. Eu vi ja que pra fazer o Inner Join eh necessario que exista um campo em comum em todas as tabelas que vao ser utilizadas. No caso, seria mais facil usar o Registro certo? Mas, vale ressaltar que os valores dos registros de AEREO sao diferentes dos de CARGAS, por exemplo. Haveria necessidade de criar 1 campo aonde os valores fossem iguais nas 3 tabelas..ou desse modo funciona?O sisteminha que vai efetuar a busca ja ta feito..eu soh queria saber mesmo como que faço pra ele ler as 3 tabelas pra daí mostrar na tela o resultado da busca baseado nas 3 tabelas. Com 1 tabela eu soube fazer..hehe Com 3 complicou. Mas to tentando aqui entender melhor isso pra conseguir fazer. Mas sintam-se a vontade pra me ajudar então a fazer o Inner Join ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se funciona ??!!SELECT * FROM AEREO AS a INNER JOIN MARITIMO AS b ON a.Registro = b.Registro INNER JOIN Cargas AS c ON b.Registro = c.Registroacho que funfa !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se funciona ??!!SELECT * FROM AEREO AS a INNER JOIN MARITIMO AS b ON a.Registro = b.Registro INNER JOIN Cargas AS c ON b.Registro = c.Registroacho que funfa !!

Deu esse erro:Syntax error (missing operator) in query expression 'a.Registro = b.Registro INNER JOIN Cargas AS c ON b.Registro = c.Registro'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou estranho essa SQL!!

 

SELECT * FROM AEREO AS a INNER JOIN MARITIMO AS b ON a.Registro = b.Registro INNER JOIN Cargas AS c ON b.Registro = c.Registro

 

 

Tente isso!

 

SELECT  A.*, M.*FROM  AEREO A  INNER JOIN MARITIMO M  ( ON A.REGISTRO = M.REGISTRO )    INNER JOIN  CARGAS C  (  ON B.REGISTRO = C.REGISTRO )

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh mesmo??!! pra mim parece estar certo, tente assim

SELECT a.Registro FROM AEREO AS a INNER JOIN MARITIMO AS b ON a.Registro = b.Registro INNER JOIN Cargas AS c ON b.Registro = c.Registro
selecione os campos q você quer ! eu soh coloquei para selecionar o campo registro da tabelaEDIT

Ficou estranho essa SQL!!

pois eh eu uso assim, e funciona !

Compartilhar este post


Link para o post
Compartilhar em outros sites

E que eu utilizo o "apelido" da seguinte maneira!!

 

SELECT  T.*FROM  TABLE T
não utilizo o " TABLE AS T " para dar apelido a tabela!

Mais se usa assim e mais uma forma de trabalhar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ratu, pondo assim:

 

SELECT * FROM AEREO AS a INNER JOIN MARITIMO AS b ON a.Registro = b.Registro
dae vai normal.

 

Mas se eu meto o INNER JOIN Cargas AS c ON b.Registro = c.Registro ae ele acusa o erro que eu falei.

 

Bruno, no seu modo ele acusou um erro no FROM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabe o q achei engraçado...se eh posto simplesmente:"SELECT * FROM AEREO, MARITIMO, CARGAS"O sisteminha de busca encontra todos os registros (aparece no contador hehe) soh que ele nao consegue mostrar os resultados ^^Por ex, se quer ver no resultado o Titulo:<%=(rsAponta.Fields.Item("Titulo").Value)%>Mas nao aparece..hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, os campos são todos numericos ? do mesmo tipo ? se você naum usar o inner join naum vai !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, os campos são todos numericos ? do mesmo tipo ? se você naum usar o inner join naum vai !!!

Entao..eu teh falei mais pra cima..que os campos de registros sao numericos sim, mas, os registros de AEREO sao diferentes dos de CARGAS, e assim por diante. Creio que eh porisso que nao ta indo sabe? Pelo que entendi, eh necessario que todas as tabelas tenham um campo, aonde os valores sejam iguais..pra que haja dae sim a fusao dos dados.

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.