Pomoc s SQL dotazom

Programovacie jazyky, rady, poradňa...
suri
Novice
Novice
Príspevky: 1
Registrovaný: 17 jan 2010, 14:17

Pomoc s SQL dotazom

Príspevok od používateľa suri »

Som zaciatocnik, bol by som vdacny za pomoc.

Chcem vytvorit databazu publikacii. Mam dve tabulky:

Autor
ID:
Meno:

InfoOPublikacii:
ID:
Nazov:
Rok:

Nakolko je medzi nimi vztah N:N (kazda poblikacia ma minimalne jedneho autora, max pocet autorov nie je znamy. A kazdy autor, moze byt autorom viacerych publikacii)


Mam spojovaciu tabulku:
AutorPublikcia
IdAutor
IdPublikacia

Potreboval by som pomoc pri vytvoreni dotazu SELECT, tak aby bol vysledok:
MenoAutora1,MenoAutora2,...,
MenoAutoraN: NazovPublikacie.
Cize: Najpr zoznam vsetkych autorov (ich pocet je pre kazdu publikaciu iny) a potom nazov prislusnej publikace.

Napr:
Peter: Bakalarska praca.
Peter, Pavol: Diplomova praca.

Dakujem za vasu pomoc,
Suri
skorec1
Expert
Expert
Príspevky: 153
Registrovaný: 20 apr 2008, 12:45
Bydlisko: Humenne
Kontaktovať používateľa:

Re: Pomoc s SQL dotazom

Príspevok od používateľa skorec1 »

trosku sa mi nezda tvoj vstah, nie je to M:N ? moze mat jednu publikaciu s menom XXX viac autorov?

Mam spojovaciu tabulku:
AutorPublikcia
IdAutor
IdPublikacia

Potreboval by som pomoc pri vytvoreni dotazu SELECT, tak aby bol vysledok:
MenoAutora1,MenoAutora2,...,
MenoAutoraN: NazovPublikacie.
Cize: Najpr zoznam vsetkych autorov (ich pocet je pre kazdu publikaciu iny) a potom nazov prislusnej publikace.

skus tak :

Kód: Vybrať všetko

SELECT a.IdAutor, p.IdPublikacia FROM IdAutor a, IdPublikacia  p, AutorPublikcia ap WHERE ap.IdAutor = ap.IdPublikacia
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pomoc s SQL dotazom

Príspevok od používateľa audiotrack »

skorec1 napísal:trosku sa mi nezda tvoj vstah, nie je to M:N ? moze mat jednu publikaciu s menom XXX viac autorov?
štyria autori, jedna publikácia:
Jančar, P., Sawa, Z., Froeschle Sibylle, Lasota Slawomir: Non-Interleaving Bisimulation Equivalences on Basic Parallel Processes. In Information and Computation. 2009
btw: kardinalita M:N je to isté ako N:N. Záleží od literátury, niekde je vedené tak, inde onak. Ty si asi narážal či to nie je náhodou vzťah 1:N prípadne N:1
skorec1
Expert
Expert
Príspevky: 153
Registrovaný: 20 apr 2008, 12:45
Bydlisko: Humenne
Kontaktovať používateľa:

Re: Pomoc s SQL dotazom

Príspevok od používateľa skorec1 »

to tiez pravda, ja myslel ze len jeden autor viac publikacii :-P

podla mna kde je N:N to iste ako M:N je chyba, ako u koho :-)
ale neje to opodstatnene, chcel ten select, nech skusi...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pomoc s SQL dotazom

Príspevok od používateľa audiotrack »

ak pokladáš N za ľubovolné celé kladné číslo >0, tak potom máš dve možnosti:
1) N na oboch stranách vyjadruje to isté číslo, a je to teda vzťah 1:1 (lebo napr. 5:5 je to isté ako 1:1)
2) N na oboch stranách znamená vo všeobecnosti číslo >0 a potom je to M:N

práve pre túto nejednoznačnosť sa pokladá N:N ako M:N, pretože N v kardinalite 1:N vyjadruje viacnásobnosť (a prvý prípad máme jednoznačne definovaný v 1:1). N:N teda možno interpretovať ako viac:viac čo zapisujeme ako M:N. V niektorých knihách môžeš nájsť N:N (i keď to nie je normalizovaný zápis) ale v kontexte vždy vyjadruje M:N

to len tak na margo
Napísať odpoveď