australopiteci
15-02-2006, 15:38
ragazzi ho questa query:
Visualizzare, per ciascuna delle relazioni presentate che hanno almeno un autore di
nazionalità italiana, il titolo e il numero degli autori di nazionalità italiana che hanno
partecipato alla sua stesura
e questa è la soluzione:
SELECT relazione.titolo, COUNT(*)
FROM presentazione JOIN stesura ON (presentazione.relazione =
stesura.relazione)
JOIN relazione ON (presentazione.relazione = relazione.codice)
JOIN autore ON (stesura.autore = autore.nome)
WHERE autore.nazione = 'italia'
GROUP BY relazione.codice, relazione.titolo
Io mi chiedevo questa domanda:
Visualizzare, per ciascuna delle relazioni presentate che hanno almeno un autore di
nazionalità italiana, il titolo e il numero degli autori di nazionalità francese che hanno
partecipato alla sua stesura
E' possibile scrivere una query x rispondere a questa domanda in modo simile a quello precedente??
edit:
queste sono le tabelle:
create table autore(
nome varchar(20) primary key not null,
istituzione varchar(20) not null,
nazione varchar(20) not null
)
without oids;
create table relazione(
codice int primary key not null,
titolo varchar(20) not null
)without oids;
create table stesura(
autore varchar(20) not null
references autore(nome)
on delete cascade
on update restrict,
relazione int not null
references relazione(codice)
on delete cascade
on update restrict,
primary key(autore, relazione)
)without oids;
create table coordinatore(
nome varchar(20) primary key not null,
sessione varchar(20) unique not null
)without oids;
create table presentazione(
relazione int primary key not null
references relazione(codice)
on delete cascade
on update restrict,
autore varchar(20) not null
references autore(nome)
on delete cascade
on update restrict,
sessione varchar(20) not null
references coordinatore(sessione)
on delete cascade
on update restrict
)without oids;
Visualizzare, per ciascuna delle relazioni presentate che hanno almeno un autore di
nazionalità italiana, il titolo e il numero degli autori di nazionalità italiana che hanno
partecipato alla sua stesura
e questa è la soluzione:
SELECT relazione.titolo, COUNT(*)
FROM presentazione JOIN stesura ON (presentazione.relazione =
stesura.relazione)
JOIN relazione ON (presentazione.relazione = relazione.codice)
JOIN autore ON (stesura.autore = autore.nome)
WHERE autore.nazione = 'italia'
GROUP BY relazione.codice, relazione.titolo
Io mi chiedevo questa domanda:
Visualizzare, per ciascuna delle relazioni presentate che hanno almeno un autore di
nazionalità italiana, il titolo e il numero degli autori di nazionalità francese che hanno
partecipato alla sua stesura
E' possibile scrivere una query x rispondere a questa domanda in modo simile a quello precedente??
edit:
queste sono le tabelle:
create table autore(
nome varchar(20) primary key not null,
istituzione varchar(20) not null,
nazione varchar(20) not null
)
without oids;
create table relazione(
codice int primary key not null,
titolo varchar(20) not null
)without oids;
create table stesura(
autore varchar(20) not null
references autore(nome)
on delete cascade
on update restrict,
relazione int not null
references relazione(codice)
on delete cascade
on update restrict,
primary key(autore, relazione)
)without oids;
create table coordinatore(
nome varchar(20) primary key not null,
sessione varchar(20) unique not null
)without oids;
create table presentazione(
relazione int primary key not null
references relazione(codice)
on delete cascade
on update restrict,
autore varchar(20) not null
references autore(nome)
on delete cascade
on update restrict,
sessione varchar(20) not null
references coordinatore(sessione)
on delete cascade
on update restrict
)without oids;