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

VieiraPT

Nao sei o que possa estar mal MySQL Tabelas

Mensagens Recomendadas

VieiraPT

Boa tarde, estou a fazer uma loja online para um trabalho escolar (por isso está tao básica...)

fiz as tabelas, fiz o codigo... ligações....etc... aqui está o código:

drop database if exists vonurb;
create database vonurb;
use vonurb;
create table Registo
(
username varchar(50) primary key,
password varchar(50),
primeiro_nome varchar(50),
ultimo_nome varchar(50),
email varchar(50)
) engine=innodb;

create table Genero
(
id_genero int(5) not null auto_increment primary key,
genero varchar(50)
)engine=innodb;

create table Banda
(
id_banda int(10) not null auto_increment primary key,
id_genero int,
nome varchar(50),
quantidade_membros int(2),
ano_inicio int(5),
pais_origem varchar(50),
foreign key(id_genero) references genero(id_genero)
)engine=innodb;

create table Album
(
id_album int(10) not null auto_increment primary key,
id_banda int,
nome varchar(50),
ano_lancamento int(5),
imagem mediumblob,
preco int(10),
foreign key(id_banda) references banda(id_banda)
)engine=innodb;

create table Carrinho
(
n_compra int(5) not null auto_increment primary key,
data_pagamento date,
username varchar(50),
data_encomenda date,
tipo_pagamento varchar(50),
estado varchar(50),
foreign key(username) references Registo(username)
)engine=innodb;

create table Artigos_Carrinho
(
n_compra int,
id_album int,
quantidade int(5),
foreign key(id_album) references Album(id_album),
foreign key(n_compra) references Carrinho(n_compra)
)engine=innodb;


insert into Registo values
('Bruno Vieira','brunopap','Bruno','Vieira','brunobms@hotmail.com');
insert into Genero values
(default,'Thrash Metal'),
(default,'Power Metal');

insert into Banda values
(default,1,'Metallica',4,1981,'America'),
(default,2,'Hammerfall',5,1993,'Suecia');

insert into Album values
(default,1,'Kill em All',1983,'',15),
(default,1,'Ride The Lightning',1984,'',15),
(default,2,'Hamerfogo',1994,'',15);

os dados estão inseridos correctamente, sem erros, tudo normal... para verificar fiz uma consulta com a linha de comandos:

Select banda.nome from banda,genero where genero.id_genero=1;

e aparecem toda as bandas (neste caso: Metallica e Hammerfall) quando deveria aparecer só Metallica porque é a unica que tem o ID_Genero = 1....

será que o problemas é das ligações? não estou a ver mesmo o que seja... os dados batem certo... o problema é quando faço a consulta..

se me puderem ajudar.. agradeco :)

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Falta meteres o genero da banda tambem!

Select banda.nome from banda,genero where genero.id_genero=1 AND banda.id_genero = 1;

mais correctamente ficaria assim:

Select banda.nome 
 FROM banda
where banda.id_genero=1 ;

Ja que meteres a tabela do genero na query e' desnecessaria


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
VieiraPT

Falta meteres o genero da banda tambem!

Select banda.nome from banda,genero where genero.id_genero=1 AND banda.id_genero = 1;

mais correctamente ficaria assim:

Select banda.nome
 FROM banda
where banda.id_genero=1 ;

Ja que meteres a tabela do genero na query e' desnecessaria

Boa, tens razão... na verdade foi uma distração minha :P ... ja me tava a passar... experimentei tudo e mais alguma coisa e mesmo assim nao tava a conseguir, obrigado pela ajuda :D

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.