cmq, da quanto ho capito, i tuoi problemi maggiori nascono dal fatto di una poca attenzione nello strutturare lo schema entità/relazioni del database.
Se, come ho capito, nel tuo caso hai libri con più autori, NON DEVI CREARE tabelle x i libri con noe1, copgn1, nome2, cogno2 etc... è da pazzi.
Qualla autori-libri è una tipica relazione MxN poichè 1 autore può scrivere N libri e ogni libro può essere scritto da più autori. Ti occorrono perciò
3 tabelle: 1 per i libri, 1 per gli autori e una per gli accoppiamenti.
Esempio, abbiamo i seguenti libri:
olimpo spa(cerami, ziche. italia. 2000);
blabla(ziche. francia. 2001);
xxx(barbucci, cerami, ziche. italia. 1999);
allora dovrai avere le seguenti tabelle:
Libro (
codice_libro,NomeLibro,Nazione,Anno) ;
Autore (
codice_autore, Nome, Cognome, NatoA, Sesso) ;
ScrittoDa (codice_libro,codice_autore);
con codLibro e cdoAutore chiavi primarie delle prime due entità e chiavi esterne della relazione ScrittoDa (che cmq è una tabella.
Nel nostrocaso:
LIBRO
codice_libro - NomeLibro - Nazione - Anno
001 - OlimpoSpa - Italia - 2000
002 - blabla - Francia - 2001
003 - xxx - Italia - 1999
AUTORE
codice_autore - Nome - Cognome - NatoA - Sesso
001 - vincenzo - cerami - venezia(?)- M
002 - silvia - ziche - boh - F
003 - ale - barbucci- boh - M
SCRITTODA
codice_libro - codice_autore
001 - 001
001 - 002
002 - 002
003 - 001
003 - 002
003 - 003
Ecco.
Per cercare per cognome devi poi fare un NATURAL JOIN tra le 3 tabelle
OK???
;)
RICORDA CHE LA PROGETTAZIONE DEL DATABASE E' LA COSA PIU' IMPORTANTE: CHE SENSO HA FARE COGNOME1, 2, 3 ? COSI PONI UN LIMITE AGLI AUTORI, OCCUPI SPAZIO INUTILE X I LIBRI CON MENO D 3 AUTORI, SCRIVI QUERY DA SFASCIARTI LA TESTA E SE T VEDESSE IL MIO PROF. DI BASI D DATI TI BRUCEREBBE VIVO...
___ Quanti programmatori ci vogliono per avvitare una lampadina? Nessuno, e' un problema hardware. ___
[Modificato da Leonard Vertighel 03/08/2004 0.03]