grazie 100000..
l'ho messo tra i preferiti, così quando mi serve lo uso..![]()
grazie 100000..
l'ho messo tra i preferiti, così quando mi serve lo uso..![]()
tiro su questo post per esigenza ulteriore..
la query era questa
avrei bisogno che il GROUP_CONCAT non fosse tra tutte le foto, ma tra alcune "scelte" tramite un campo..Codice PHP:
SELECT descrizioni.descrizione AS descrizione, GROUP_CONCAT( foto.nomefoto
ORDER BY foto.id_foto ASC
SEPARATOR ', ' ) AS nomefoto
FROM descrizioni
LEFT JOIN foto ON descrizioni.id = foto.id_desc
GROUP BY descrizioni.id
ORDER BY NULL
LIMIT 0 , 30
Dovrei quindi aggiungere là una clausola WHERE, ma non riesco ad uscirne, mi da sempre errore..
grazie comunque..![]()
quando utilizzi l' aggregazione con group by, devi usare having al posto di where
![]()
ho provato anche a mettere HAVING dopo order by, ma stesso risultato..Codice PHP:
SELECT descrizioni.descrizione AS descrizione,
GROUP_CONCAT( foto.nomefoto
HAVING foto.ordine > 0
ORDER BY foto.id_foto ASC
SEPARATOR ', ' ) AS nomefoto
FROM descrizioni
LEFT JOIN foto ON descrizioni.id = foto.id_desc
GROUP BY descrizioni.id
ORDER BY NULL
LIMIT 0 , 30
a memoria direi che la clausola having la devi mettere dopo group by e quindi:
prova cosi' e se non funziona cerca degli esempi che utilizzano HAVINGcodice:SELECT descrizioni.descrizione AS descrizione, GROUP_CONCAT( foto.nomefoto ORDER BY foto.id_foto ASC SEPARATOR ', ' ) AS nomefoto FROM descrizioni LEFT JOIN foto ON descrizioni.id = foto.id_desc GROUP BY descrizioni.id HAVING foto.ordine > 0 ORDER BY NULL LIMIT 0 , 30
..non va..
mi dice "Unknown column 'foto.ordine' in 'having clause'"
evidentemente si aspetta un campo nella tabella descrizioni, non in quella foto..
cerco, cerco..![]()
ho trovato questo, che sembra mooolto simile al mio caso, ma mi da errore
http://www.danieletabacco.com/11/art...ndo-mysql.html
mi dice "FUNCTION Sql353046_1.find_in_set does not exist"
come se find_in_set fosse un campo..
boh?!
confermo e UPPO..
la clausola HAVING andrebbe messa nel GROUP_CONCAT, perchè se messa dopo l'SQL si aspetta che il campo faccia parte della tabella descrizioni, non della tabella foto..
grazie comunque, magari qualcuno mi può aiutare..![]()
lo tiro su, perchè ho risolto..
bastava usare
WHERE foto.evidenza = 1
dopo la join
olè e grazie a tutti..Codice PHP:
SELECT descrizioni.descrizione AS descrizione, GROUP_CONCAT( foto.nomefoto
ORDER BY foto.id_foto ASC
SEPARATOR ', ' ) AS nomefoto
FROM descrizioni
LEFT JOIN foto ON descrizioni.id = foto.id_desc
WHERE foto.ordine = 1
GROUP BY descrizioni.id
ORDER BY NULL
LIMIT 0 , 30
![]()
![]()
UPPO questa discussione, perchè ho un risultato "inaspettato":
la query di cui sopra, NON mi restituisce valori se non ci sono valori che soddisfano la condizione
foto.ordine = 1.
quindi la query che servirebbe a me dovrebbe scremare i valori del group_concat per foto.ordine = 1.. non so nemmeno se si può fare, però di quello avrei bisogno..
grazie in anticipo..![]()