PDA

Visualizza la versione completa : Sql: unire due tabelle e poi fare una join con una terza, si può?


Buccleuch
11-09-2004, 15:47
Ciao a tutti

Ecco il mio problema:

Ho quattro tabelle

tabella1 (tre colonne bookID, groupID e title)
tabella2 (due colonne authorID e name)

tabella3 (due colonne groupNUM e author)
tabella4 (due colonne bookNUM e author)

La prima tabella contiene l'insieme delle pubblicazioni. Ogni libro ha la sua propria ID e la ID del gruppo di pubblicazioni a cui appartiene. Le tabelle 3 e 4 collegano i vari gruppi di pubblicazione o i vari libri singoli al proprio autore.

Io voglio ottenere in una query questo: a partire dall'ID dell'autore (della tabella2) avere una tabella con tutti i libri (tabella1) sia che appartengano a un gruppo di pubblicazione di quell'autore (tabella3) sia che siano stati scritti direttamente da quell'autore (tabella4).

Sono riuscito ad ottenere in risultato parziale con questa query:

SELECT tabella2.name, tabella1.title FROM tabella2, tabella1 JOIN tabella3 ON tabella1.groupID = tabella3.groupNUM WHERE tabella3.author = tabella2.authorID AND tabella2.authorID = (valore)

Ecco... io vorrei ottenere questo risultato con in aggiunta anche i singoli libri di tabella4! Ma come posso fare?

Aiutatemi! :dhò:

Grazie!

cik
13-09-2004, 17:41
Fai una query simile a quella che hai fatto che ti restituisce i singoli libri.

Poi unisci le due con una UNION

ES:

(Qui ci metti la query che hai scritto) UNION (qui ci metti la query che estrae i singoli libri)

Loading