Jump to content
VieiraPT

Nao sei o que possa estar mal MySQL Tabelas

Recommended Posts

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 :)

Edited by Rui Carlos

Share this post


Link to post
Share on other 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."

Share this post


Link to post
Share on other 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

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.