allora, ho la 4.1.4gamma installata su winxp, le prove fino ad ora le ho fatte con php e con phpmyadmin (provo sempre tutte le mie query prima su phpmyadmin). Vi posto la struttura della tabella:
codice:
CREATE TABLE `allegati` (
`nome` char(255) NOT NULL default '',
`descrizione` char(255) NOT NULL default '',
`cartella` char(255) NOT NULL default '',
`group` char(255) NOT NULL default '',
`references` char(255) NOT NULL default '',
`display` enum('false','true') NOT NULL default 'true',
PRIMARY KEY (`nome`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ed ora la query:
codice:
SELECT n.ID, n.titolo, n.testo, n.data, n.rilievo, c.nome AS categoria, u.username AS autore, COUNT( a.nome ) AS immagini
FROM nws_news AS n
LEFT JOIN allegati AS a ON a.references = n.ID AND a.group = 'news'
JOIN nws_category AS c ON c.ID = n.categoria
LEFT JOIN user AS u ON n.autore = u.username
GROUP BY n.ID
se si elimina la parte in grassetto la query funziona perfettamente
sul manuale ho letto diversi capitoli, cominciando dalla teoria del character set:
http://dev.mysql.com/doc/mysql/en/Charset-MySQL.html
alcune note sui collation:
http://dev.mysql.com/doc/mysql/en/Ch...te-tricky.html
fra le funzioni varie potrebbe risultare utile COERCIBILITY
http://dev.mysql.com/doc/mysql/en/In...functions.html
naturalmente io vorrei rendere le mie query funzionanti anche (soprattutto dire) sulle vecchie versioni di mysql, cambiando solo, se possibile, la struttura delle tabelle
un ultima nota, da quanto mi sembra di aver capito mysql assegna alle stringhe presenti nelle query (come nel mio caso) il charcter set utf8 e collation utf8_general_ci, quindi assegnando lo stesso character set e collation alle tabelle il tutto funziona, forse è questa la soluzione ma vorrei discuterne. C'è anche da dire che se si vuol formare un indice su più campi text, tutti i campi devono avere lo stesso character set e collation, e questo mi sembra di non averlo letto sul manuale... un bel macello inzomma