România
Roportal.ro

Progresql - Little Help

Început de ov1d1u90, Dum 3 apr 2011 · 2 răspunsuri · 1.746 vizualizări

ov1d1u903 mesaje#1

Salut,

Am de facut o baza de date la scoala si am nevoie de putin ajutor.

create table producatori(

id_prod numeric(10) primary key,

den_prod varchar(50),

an_infiintare_prod numeric(4));

create table modele(

id_model numeric(10) primary key,

den_model varchar(50)

);

create table masini(

id_masina numeric(10),

id_prod numeric(10) references producatori,

id_model numeric(10) references modele);

Cum fac ca in tabela masini in loc de id_prod si id_model ( adica cifrele alea ) sa imi apara den_prod si den_model?

Adica sa fie ceva de genul ( 1 , Opel , Astra ) nu ( 1, 1, 1).

Moftangiu2.920 mesaje#2

Faci un select pe cele trei tabele cu join

Select ma.id_masina, mo.den_model, pr.den_prod

From masini ma, modele mo, producatori pr

Where ma.id_prod = pr.id_prod

and ma.id_model = mo.id_model

and ma.id_masina = 1

Poti crea un view care il utilizezi numai pentru interogare ca pe o tabela

Create view modele_masini (id_masina, den_model, den_prod)

as Select ma.id_masina, mo.den_model, pr.den_prod

From masini ma, modele mo, producatori pr

Where ma.id_prod = pr.id_prod

and ma.id_model = mo.id_model

Si apoi selectezi din el

Select * from modele_masini

where conditie..

Editat Dum 3 apr 2011 21:59

ov1d1u903 mesaje#3

Ms Moftangiu, e bun ce mi-ai dat tu, numai ca eu nu ma refeream la o comanda prin care sa selectez ci la una prin care sa fac o legatura astfel incat sa imi apara toate inregistrarile din tabela asa :

IdMasina DenProd DenModel

1. Vw Golf

2. Opel Vectra

3. Vw Passat

4. Dacia Duster

( adica sa fac o legatura intre id_producator din tabela Producatori si id_producator din tabela Masini, iar in tabela Masini sa apara defapt denumirea(DenProd), nu cifra pe care o introduc ca id). Stiu ca are legatura cu foreign key dar nu stiu care e comanda exacta.

Vreo legatura cu Values, intre idprod si denumire?

Editat Dum 3 apr 2011 23:46

← Înapoi la Programare