Salve a tutti, mi dovete scusare, ma proprio non riesco a capire il meccanismo delle SELECT annidate, ecco su cosa mi sono bloccato:
(SELECT codice_ean,nome_promozione FROM promozioni_m_x_n)
UNION
(SELECT codice_ean,nome_promozione FROM promozioni_per_data)
Fin qui, tutto ok, ho la mia bella tabella con 2 colonne, ma proviamo ad usare la stessa query, con 2 parentesi in più:
(
(SELECT codice_ean,nome_promozione FROM promozioni_m_x_n)
UNION
(SELECT codice_ean,nome_promozione FROM promozioni_per_data)
)
#1064 - Errore di sintassi nella query SQL vicino a '
(SELECT codice_ean,nome_promozione FROM promozioni_m_x_n)
UNION
(SELECT codice_ean'
linea 1
Errore di sintassi? Per 2 parentesi esterne in più?Bah...non lo capisco...è il primo linguaggio che odia le parentesi in più.
Allora proviamo così:
SELECT codice_ean FROM
(
SELECT codice_ean,nome_promozione FROM promozioni_m_x_n
)UNION(
SELECT codice_ean,nome_promozione FROM promozioni_per_data
)
#1248 - Every derived table must have its own alias
Ah, ecco...vuoi gli alias per le tabella derivate...va bene:
SELECT codice_ean FROM
(
SELECT codice_ean,nome_promozione FROM promozioni_m_x_n AS T1
)UNION(
SELECT codice_ean,nome_promozione FROM promozioni_per_data AS T2
)
#1248 - Every derived table must have its own alias
Di nuovo? Toh, stupido io, Mysql l'alias lo vuole per la tabella derivata dalla UNION, non per quella derivata dalla SELECT annidate:
SELECT codice_ean FROM (
(
SELECT codice_ean,nome_promozione FROM promozioni_m_x_n AS T1
)UNION
(
SELECT codice_ean,nome_promozione FROM promozioni_per_data AS T2
)
AS T3
)
#1248 - Every derived table must have its own alias
Ancora?...bah, e cosa resta?Abbondiamo!
SELECT codice_ean FROM (
(
(SELECT codice_ean,nome_promozione FROM promozioni_m_x_n AS T1)
UNION
(SELECT codice_ean,nome_promozione FROM promozioni_per_data AS T2)
)AS T3
) AS T4
#1248 - Every derived table must have its own alias
Olèèè...
Vabbè, per esperienza so che il linguaggio di programmazione alla fine ha sempre ragione, facciamo un ultimo tentativo, la clausola AS va usata nelle SELECT, qui forse un AS T3 è fuori posto...
SELECT codice_ean
FROM (
SELECT *
FROM (
(
SELECT codice_ean, nome_promozione
FROM promozioni_m_x_n AS T1
)UNION (
SELECT codice_ean, nome_promozione
FROM promozioni_per_data AS T2
)
) AS T3
)AS T4
#1248 - Every derived table must have its own alias
...dite la verità, mysql mi sta un pò a prendere per il fondoschiena?
Sarò grato a chiunque mi dia una mano in queste sante e benedette query annidate...