Franco: #1267 - Illegal mix of collations

Beitrag lesen

Hi Vinzenz,

schau' Dir bitte die CREATE-TABLE-Statements der beiden Tabellen (falls es zwei sind) an, die Du joinen willst. Stelle uns bitte außerdem den relevanten Ausschnitt aus Deinem Statement zur Verfügung.

Wenn ich aus phpmyadmin exportiere, sehen beide Tabellen so aus:

CREATE TABLE A...
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

CREATE TABLE B...
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

Der relevante mysql-Teil sieht so aus:

  
SELECT t.Monat, s.COUNT as count  
from praefix_tmp t  
LEFT JOIN  
(  
SELECT FROM_UNIXTIME(r.Timestamp, '%Y%|%m') AS ym,  
sum(b.Menge*b.Preis*  
(CASE  
WHEN b.multi = 'ja' THEN 1  
WHEN b.multi = '100' THEN 1  
WHEN b.multi = '200' THEN 2.00  
WHEN ISNULL(b.multi) THEN 1  
END) ) AS count  
FROM praefix_A b  
JOIN praefix_B r  
ON b.G_ID = r.G_ID  
WHERE  
loesch != 1  
FROM_UNIXTIME(r.Timestamp) > NOW() - INTERVAL 1 YEAR  
GROUP BY ym DESC  
) s  
ON t.Monat = s.ym  
ORDER BY t.Monat DESC  

Die 3. involvierte Tabelle ist die temporäre tmp-Tabelle, die folgendes CREATE TABLE Statement hat:

CREATE TEMPORARY TABLE tmp (
  ID int(10),
  Monat varchar(10) NOT NULL
);

Danach kann man weitersehen.

Freut mich. Ich hoffe, die Angaben helfen.

Grüße, Frank