Jump to content
MacgyverPT

[Ajuda][Resolvido] Como ligar 2 tabelas

Recommended Posts

MacgyverPT

Boas.

Preciso de uma dica. Dei SQL há uns anos atrás e agora na Universidade estou a dar SQL e preciso de fazer uma base de dados. A base de dados está feita (desenho das tabelas e campos em papel), no entanto não me recordo do comando para juntar duas tabelas. Passo a explicar: No access para poder "chamar" uma sub-tabela, usamos o assistente de pesquisa, logo na tabela principal, quando seleccionamos o campo que está ligado à sub-tabela é-nos mostrados os valores lá inseridos. Como faço isto no SQL?

Tenho estas tabelas:

motor:

- id

- referencia

- tipoMotor

- potencia

(...)

- tipoEscape

escape:

- referencia

- tipoEscape

Na tabela "escape" os valores lá inseridos, por exemplo, são estes:

1, desportivo

2, normal

3, xpto

A minha intenção era que quando fosse preencher os campos da tabela "motor", quando chegasse ao campo escape pudesse ir buscar os valores à tabela escape... Mas para isso preciso interligar as duas tabelas. Alguém me dá uma ajuda com isto?

Cumprimentos,

MoffspringR

Share this post


Link to post
Share on other sites
KTachyon

Não estou a ver qual é o atributo que liga as duas tabelas, mas vou utilizar um chamado motor_id:

SELECT * FROM motor, escape WHERE escape.motor_id = motor.id;

Vai buscar a junção das duas tabelas.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
MacgyverPT

Queria ligar o "tipoEscape" da tabela escape ao campo "tipoEscape" da tabela motor

Share this post


Link to post
Share on other sites
KTachyon

A base é a mesma:

SELECT * FROM motor, escape WHERE escape.tipoEscape = motor.tipoEscape;


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
MacgyverPT

Boas.

Desculpa lá a ignorancia, mas isso é numa nova query, ou posso juntar à query que estou a fazer de criação da tabela. Ou seja, faço o create table normalmente e depois faço essa query em separado, ou tenho que juntar as duas?

Share this post


Link to post
Share on other sites
KTachyon

Essa query permite-te pesquisar nas duas tabelas sem terem que estar juntas. Não serve para juntar as tabelas.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
MacgyverPT

Ok.

Então e quando for preencher os campos da tabela principal, posso ir buscar esses valores? Ou esses valores só estão disponiveis como quero se fizer uma consulta?

Share this post


Link to post
Share on other sites
KTachyon

Se tens uma relação entre tabelas, podes fazer uma query pelos dados que pretendes. Quando preenches tens que preencher de forma a que as relações sejam estabelecidas. É para isto que serve uma base de dados. Uma base de dados com apenas uma tabela não serve de muito.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
MacgyverPT

Exacto.

O que estava a falar era: suponhamos que temos 2 tabelas A e B, onde o B é uma sub-tabela de A. Primeiro colocava-mos os valores na B, e depois como as tabelas estavam ligadas, ao preencher a tabela A, no campo de ligação entre ambas era mostrados os valores da B.

Mas acho que já percebi aqui a jogada disto.

Obrigado pelas dicas!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.