# 1222 - Die verwendeten SELECT-Anweisungen haben eine unterschiedliche Anzahl von Spalten

9

Warum bekomme ich eine # 1222 - Die verwendeten SELECT-Anweisungen haben eine andere Anzahl von Spalten ? Ich versuche, Wandposts von diesen Benutzern Freunden und seinem Selbst zu laden.

%Vor%

Die Tabelle wall_posts sieht wie folgt aus: id date privacy pid uid message

Die Friends-Tabellenstruktur sieht folgendermaßen aus: Fid id buddy_id invite_up_date status

pid steht für Profil-ID. Ich bin mir nicht wirklich sicher, was los ist.

    
Keverw 15.10.2010, 22:50
quelle

3 Antworten

17

Die erste Anweisung in der UNION gibt vier Spalten zurück:

%Vor%

Der zweite gibt sechs zurück, da der * um alle Spalten von WALL_POSTS erweitert wird:

%Vor%

Die Operatoren UNION und UNION ALL erfordern Folgendes:

  1. In allen Anweisungen, aus denen die UNION-Abfrage
  2. besteht, ist die gleiche Anzahl von Spalten vorhanden
  3. Die Datentypen müssen an jeder Position / Spalte
  4. übereinstimmen

Verwenden:

%Vor%     
OMG Ponies 15.10.2010, 22:55
quelle
3

Sie nehmen UNION einer 4-Spalten-Beziehung ( id , pid , message und date ) mit einer 6-Spalten-Beziehung ( * = die 6 Spalten von %Code%). SQL lässt Sie das nicht tun.

    
dan04 15.10.2010 22:55
quelle
2
%Vor%

Sie haben 4 in der ersten Abfrage und 6 in der zweiten ausgewählt, also passen Sie sie an.

    
Sabeen Malik 15.10.2010 22:56
quelle

Tags und Links