Autor | Zpráva | ||
---|---|---|---|
kadla23 Profil |
#1 · Zasláno: 3. 5. 2010, 13:12:21
Dobrý den,
mám tři tabulky. Zanr Zanr_Autor a Autor. Ja bych potřeboval nalézt všechny autory, co obsahují buď všechny zadané knížky anebo část zadaných knížek, ale už neobsahuje už žádně další. Nejlepší bude, kryž uvedu příklad. Zadám: horor, beletrie, komedie. Spravny vysledek muze byt, autor co napsal: horor, beletrie, komedie anebo horor, beletrie, ALE nesměl napsat už žádný jiný žánr. Nesprávné by bylo: horor, beletrie, komedie, dektevika nebo horor, beletrie, detektivka. Strašně děkuju moc. |
||
Taps Profil |
#2 · Zasláno: 3. 5. 2010, 13:17:31
kadla23:
napiš jakou máš strukturu databázových tabulek |
||
kadla23 Profil |
#3 · Zasláno: 3. 5. 2010, 13:21:44
jasny,
tabulka zanr: idzanr (pk), nazev_zanru tabulka zanr_autor: zanr_idzanr (fk), autor_idautor (fk) tabulka autor: idautor (pk), nazev_autora Diky |
||
Taps Profil |
#4 · Zasláno: 3. 5. 2010, 13:27:41 · Upravil/a: Taps
kadla23:
zkus toto: $sql=mysql_query("select z.nazev_zanru as nazevzanru from zanr as z ,zanr_autor as za, autor as a where a.idautor=za.autor_idautor and z.idzanr=za.zanr_idzanr and z.nazev_zanru in('horor','beletrie','komedie')"); |
||
kadla23 Profil |
#5 · Zasláno: 3. 5. 2010, 13:53:31
hele hází mi to pořad nějaký chyby. určitě jsem to je jen pojmenování názvů. třeba z.nazev mi nechce vzít
|
||
panther Profil |
#6 · Zasláno: 3. 5. 2010, 14:06:01
kadla23:
„hele hází mi to pořad nějaký chyby.“ a jaké chyby to jsou, si máme domyslet? Hele, mám nějak rozbitý auto, nevíš, čím to může být? |
||
Kajman_ Profil * |
Možná to půjde takto nějak...
select a.idautor, a.nazev_autora, group_concat(distinct z.nazev_zanru) zanry from autor as a join zanr_autor as za on a.idautor = za.autor_idautor join zanr as z on z.idzanr = za.zanr_idzanr left join zanr as z2 on z.idzanr = z2.idzanr and z2.nazev_zanru('horor', 'beletrie', 'komedie') group by a.idautor, a.nazev_autora having count(z2.idzanr) in (count(z.idzanr),3) -- 3 je pocet hledanych zanru order by count(z2.idzanr) desc, a.nazev_autora |
||
Časová prodleva: 14 let
|
0