Kezdőoldal » Számítástechnika » Programozás » Adatbaziskezelesben kellene...

Adatbaziskezelesben kellene segitseg (? )

Figyelt kérdés

Kezdo vagyok, es csak magamtol kezdtem el tanulni adatbaziskezelest, es van egy feladatom amit nem tudok megoldani:

Ossze kell hozni egy termek tulajdonsagait tobb tablazatbol egy "Termek leirasa" nevu tablazatba a kovetkezo keppen:

Van egy "Kategoria" tablazat(oszlopai: ID/kategorianev), amibol ki lehet valasztani a termek kategoriajat, aztan ki kell valasztani a mertekegyseget egy "Mertekegyseg" tablazatbol(oszlopai: iD/Mertekegyseg neve) majd pedig ki kell valasztani a termek arat, egy "Ar" tablazatbol(oszlopai: Id/VetelAr), vegul meg a "Termek" tablazatbol (oszlopai: id/termek neve) magat a termeket.

A vegeredmeny valahogy igy kell kinezzen:

pl: elelmiszer, liter, 170ft, tej


2015. júl. 13. 12:21
 1/7 anonim ***** válasza:
Ez egy spéci adatbázis program?
2015. júl. 13. 12:39
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
nem speci, csak egy egyszeru GUI interfesz, ami lekerdez adatokat egy adatbazisbol majd kiirja azokat, de nem tudom az sql szintaxist hozza
2015. júl. 13. 13:00
 3/7 anonim ***** válasza:

Szak (szak_id [INT PK], nev [VARCHAR])

(1, első szak)

(2, második szak)

(3, harmadik szak)


Hallgato (hallgato_id [INT PK], szak_id [INT FK], vezeteknev [VARCHAR], keresztnev [VARCHAR])

(1, 1, Kiss, Pista)

(2, 1, Nagy, Józsi)

(3, 3, Saját, Magam)

(4, 4, Próba, Ella) (ilyet amúgy az FK megszorítás miatt nem lehet, de tegyük fel, hogy mégis)


Ami neked kell, az a SELECT-nek a JOIN kiterjesztése. Ennek több fajtája van:


INNER JOIN: Két táblát kapcsol össze, és csak azokat a rekordokat választja ki, amelyeknél mind az elsődleges kulcs, mind a külső kulcs értéke nem NULL.

> SELECT * FROM Szak INNER JOIN Hallgato ON Szak.szak_id = Hallgato.szak_id;

(szak.szak_id, szak.nev, hallgato.hallgato_id, hallgato.szak_id, hallgato.vezeteknev, hallgato.keresztnev)

(1, első szak, 1, 1, Kiss, Pista)

(1, első szak, 2, 1, Nagy, Józsi)

(3, harmadik szak, 3, 3, Saját, Magam)


LEFT JOIN: Két táblát kapcsol össze, és az ON bal oldalán lévő összes rekord kiválasztásra kerül. Azokhoz az elsődleges kulcsokhoz, amihez nem tartozik idegen kulcs az ON jobb oldalán lévő táblában, azok NULL-lal lesznek feltöltve.

> SELECT * FROM Szak LEFT JOIN Hallgato ON Szak.szak_id = Hallgato.szak_id;

(szak.szak_id, szak.nev, hallgato.hallgato_id, hallgato.szak_id, hallgato.vezeteknev, hallgato.keresztnev)

(1, első szak, 1, 1, Kiss, Pista)

(1, első szak, 2, 1, Nagy, Józsi)

(2, második szak, NULL, NULL, NULL, NULL)

(3, harmadik szak, 3, 3, Saját, Magam)


RIGHT JOIN: Hasonló, mint a LEFT JOIN, azzal a különbséggel, hogy az ON jobb oldalán lévő tábla összes rekordját kérdezi le, és amihez a bal oldalon nem talál értéket, azokat NULL-lal tölti fel.

> SELECT * FROM Szak RIGHT JOIN Hallgato ON Szak.szak_id = Hallgato.szak_id;

(szak.szak_id, szak.nev, hallgato.hallgato_id, hallgato.szak_id, hallgato.vezeteknev, hallgato.keresztnev)

(1, első szak, 1, 1, Kiss, Pista)

(1, első szak, 2, 1, Nagy, Józsi)

(3, harmadik szak, 3, 3, Saját, Magam)

(NULL, NULL, 4, 4, Próba, Ella)


Fejből írtam, lehet, nem hibátlan, de majd kijavítanak mások.

2015. júl. 13. 13:30
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
Ja, ezt nagyon benéztem. Egye fene...
2015. júl. 13. 13:38
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Mit is neztel be? :D
2015. júl. 13. 13:56
 6/7 anonim ***** válasza:
graphical user interface interface?
2015. júl. 14. 00:36
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
ne kotekedj na, siettem es nem gondoltam vegig :)
2015. júl. 14. 13:00

További kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!