Mysql gibt mehr als eine Zeile zurück

8

Ich habe diese Abfrage.

%Vor%

Ich habe diese Unterabfrage zu der 'if-Anweisung'

hinzugefügt %Vor%

Danach habe ich eine neue Spalte hinzugefügt.

%Vor%

Es gibt zwei Spalten zurück. Wie kann ich zwei Spalten zurückgeben? Ist das möglich? :) Danke

    
Oyeme 01.06.2012, 12:56
quelle

2 Antworten

6

Eine Unterabfrage in einer IF-Anweisung kann nicht mehrere Spalten zurückgeben. Sie müssen die Unterabfrage in die Ergebnisse einfügen und die zwei separaten Spalten einzeln herausziehen:

%Vor%     
mellamokb 01.06.2012, 13:23
quelle
2
___ tag123mysql ___ MySQL ist ein freies, relationales Datenbank-Managementsystem (RDBMS), das die strukturierte Abfragesprache (SQL) verwendet. Verwenden Sie dieses Tag NICHT für andere DBs wie SQL Server, SQLite usw. Dies sind verschiedene DBs, die alle SQL verwenden, um die Daten zu verwalten. ___ answer10851164 ___

Eine Unterabfrage in einer IF-Anweisung kann nicht mehrere Spalten zurückgeben. Sie müssen die Unterabfrage in die Ergebnisse einfügen und die zwei separaten Spalten einzeln herausziehen:

%Vor%     
___ qstntxt ___

Ich habe diese Abfrage.

%Vor%

Ich habe diese Unterabfrage zu der 'if-Anweisung'

hinzugefügt %Vor%

Danach habe ich eine neue Spalte hinzugefügt.

%Vor%

Es gibt zwei Spalten zurück. Wie kann ich zwei Spalten zurückgeben? Ist das möglich? :) Danke

    
___ tag123sql ___ Structured Query Language (SQL) ist eine Sprache für die Abfrage von Datenbanken. Fragen sollten Codebeispiele, Tabellenstruktur, Beispieldaten und ein Tag für die verwendete DBMS-Implementierung (z. B. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 usw.) enthalten. Wenn sich Ihre Frage nur auf ein bestimmtes DBMS bezieht (verwendet bestimmte Erweiterungen / Funktionen), verwenden Sie stattdessen das Tag des DBMS. Antworten auf mit SQL gekennzeichnete Fragen sollten den ISO / IEC-Standard SQL verwenden. ___ answer 10851203 ___

Eine korrelierte Unterabfrage innerhalb einer IF-Anweisung kann nur 1 Spalte und 1 Zeile zurückgeben, deshalb erhalten Sie den Fehler. Wenn Sie jedoch Ihre Abfrage durchsuchen, ist der einzige äußere Verweis innerhalb der Unterabfrage

%Vor%

Sie brauchen also keine korrelierte Unterabfrage und Sie können das gleiche Ergebnis erzielen, indem Sie die Unterabfrage zu einer Verknüpfung und Gruppierung nach doc_nr innerhalb der Unterabfrage verschieben, was wahrscheinlich viel effizienter ist und Ihnen die Rückkehr ermöglicht die 2 gewünschten Spalten:

%Vor%     
___ tag123groupconcat ___ Eine Funktion, die eine Zeichenfolgendarstellung der verketteten Nicht-NULL-Werte einer Gruppe zurückgibt ___ qstnhdr ___ Mysql gibt mehr als eine Zeile zurück ___
GarethD 01.06.2012 13:26
quelle

Tags und Links