2017-05-19 3 views
0

Ich erhalte die folgende FehlermeldungMYSQL ERROR: Illegal Mix von Sortierungen

[Err] 1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

Subquery Union von zwei Tabellen aus zwei verschiedenen Datenbanken enthält. Die Abfrage ich versuche zu unterhalb

SELECT c.CORRECTION_NO FROM (
    SELECT "regm2017" as `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2017.master r17 
    WHERE r17.IS_DELETED=0 
    UNION 
    SELECT "regm2016" as `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2016.master r16 
    WHERE r16.IS_DELETED=0 
    ) as r JOIN corrections_registration as c ON  c.SERIALNO = r.SERIALNO 
    AND c.`SESSION`= r.`SESSION`; 

Antwort

0

Es aufgrund der Veränderung geschah gegeben ausführen in collation.If Sie alle Werte explizit in Query geben, Sortierung wird von Verbindung genommen werden.

Sie können so etwas verwenden.

 SELECT c.CORRECTION_NO FROM (
    SELECT "regm2017" COLLATE utf8_general_ci as > `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2017.master r17 
    WHERE r17.IS_DELETED=0 
    UNION 
    SELECT "regm2016" COLLATE utf8_general_ci as `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2016.master r16 
    WHERE r16.IS_DELETED=0 
    ) as r JOIN corrections_registration as c ON c.SERIALNO = 
    r.SERIALNO 
    AND c.`SESSION`= r.`SESSION`;` 

ODER

SELECT c.CORRECTION_NO FROM (
    SELECT "regm2017" COLLATE latin1_swedish_ci as `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2017.master r17 
    WHERE r17.IS_DELETED=0 
    UNION 
    SELECT "regm2016" COLLATE latin1_swedish_ci as `SESSION`,SERIALNO,NAME,FATHER 
    FROM regm2016.master r16 
    WHERE r16.IS_DELETED=0 
) as r JOIN corrections_registration as c ON  c.SERIALNO = r.SERIALNO 
    AND c.`SESSION`= r.`SESSION`; 
+0

bitte einige Formate diese Antwort, kippe ich es in meiner Maschine tun – MohanaPriyan

Verwandte Themen