Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Alfapt

Comparar valores de 2 tabelas diferentes

Mensagens Recomendadas

Alfapt

Boas, eu estou a fazer um site que consegue gerir marinas, estou numa fase em que dou aos utilizadores a possibilidade de efetuarem reservas em amarrações. As Amarrações têm um comprimento, uma largura e uma profundidade, tal como os barcos e eu queria que quando o meu cliente escolhe-se o barco, ele compara-se as medidas de ambas as tabelas e me disse-se se é possivel, mas não estou a conseguir e as maneiras como estou a tentar fazer não me estão a levar a nenhum lado, alguem tem uma ideia e me pode ajudar?

Tenho uma tabela Barcos

___

CREATE TABLE Barcos (
Id_Barco INT AUTO_INCREMENT ,
Id_Cliente INT NOT NULL,
TipoBarco INT (3),
NomeBarco VARCHAR (45) NOT NULL,
Comprimento NUMERIC (6,2),
Largura NUMERIC (5,2),
ProfundidadeCasco NUMERIC (5,2),
PRIMARY KEY (Id_Barco),
foreign key (Id_Cliente) references Clientes(Id_Cliente),
foreign key (TipoBarco) references TiposBarcos(TipoBarco)
);

E outra de Amarrações

__

CREATE TABLE Amarracoes (
Id_Amarracao INT AUTO_INCREMENT ,
Id_Pontao  INT NOT NULL,
Profundidade  NUMERIC (3,2),
Comprimento NUMERIC (6,2),
Largura NUMERIC (5,2),
Estado INT (2) NOT NULL,
Preco NUMERIC (6,2) NOT NULL,
PRIMARY KEY (Id_Amarracao),
foreign key (Id_Pontao) references Pontoes(Id_Pontao),
foreign key (Estado) references Estados(Estado)
);

Editado por apocsantos
tag code + geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
RuiAlmeida20

A meu ver a melhor maneira de fazeres isso, era criares outra tabel que ligue os barcos e as amarracoes...

Do tipo,

Tabela ba_compativeis:

id_row | id_amarracao | id_barco


Mas tambem podes fazer uma query com inner joins...

Editado por RuiAlmeida20

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
help

Se quiser só comparar os valores pode fazer assim

SELECT
barcos.Comprimento, amarracoes.Comprimento,
barcos.Largura, amarracoes.Largura,
barcos.ProfundidadeCasco, amarracoes.Profundidade
FROM barcos, amarracoes
WHERE
barcos.Comprimento=amarracoes.Comprimento
&&
barcos.Largura=amarracoes.Largura
&&
barcos.ProfundidadeCasco=amarracoes.Profundidade

Os resultados que forem iguais em ambas as tabelas serão mostrados.

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.