Ho queste due relazioni:
musei(
ID_museo, nome, cittā, numero_sale, nazione)
quadri(
ID_quadro, titolo, periodo, autore,
id_museo)
in cui ho evidenziato in grassetto la chiave primaria e in corsivo quella esterna.
Ho una query da risolvere che dice di trovare quali musei hanno un numero di quadri superiore alla media complessiva per quella nazione.
Questo č il mio codice che coincide con quello della soluzione, ma non funziona.
Codice:
SELECT nome,COUNT(*) as tot
FROM Musei M INNER JOIN Quadri Q
ON Q.id_museo=M.ID_museo
GROUP BY M.ID_museo
HAVING tot >
(
(SELECT COUNT(*)
FROM Quadri
WHERE Quadri.id_museo=M.ID_museo)
/
(SELECT COUNT(*)
FROM Quadri
WHERE Quadri.id_museo=M.ID_museo
GROUP BY M.nazione)
)
mysql mi dice che č sconosciuto l'attributo M.nazione nel raggruppamento.
Sapreste indicarmi anche una strategia per risolvere le query annidate molto complesse?
Per quanto riguarda l'uso delle variabili mi potreste chiarire quando č opportuno inserirle nei casi di query annidate?
Grazie.