Ergebnis 1 bis 6 von 6
  1. #1
    Kunde
    Registriert seit
    11.10.2007
    Beiträge
    89

    SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Mir ist aufgefallen, dass bei einem SELECT, in dem ein UNION enthalten ist, das phpMyAdmin ein "sie werden gleich weitergeleitet..." anzeigt, wenn die abgefragte Tabelle leer ist:

    siehe Screenshot anbei.

    Das folgende SQL fragt enthält mehrere UNION Befehle. Wenn die FROM Tabelle befüllt ist, erhalte ich das gewünschte Ergebnis. Ist die Tabelle hingegen leer, dann zeigt phpMyAdmin die angehängte Meldung an.

    Code:
    SELECT `Feld_1`, `Feld_2`
    FROM (SELECT `Feld_1`, `Feld_2`
          FROM `Tabelle` 
          WHERE `Feld_2` = 'a'
          ORDER BY `Feld_1` ASC) AS Ergebnis_1
    UNION
    SELECT `Feld_1`, `Feld_2`
    FROM (SELECT `Typ`, `Ticker` 
          FROM `Tabelle` 
          WHERE `Feld_2` = 'b'
          ORDER BY `Feld_1` ASC) AS Ergebnis_2
    UNION
    SELECT `Feld_1`, `Feld_2`
    FROM (SELECT `Typ`, `Ticker` 
          FROM `Tabelle` 
          WHERE `Feld_2` = 'c'
          ORDER BY `Feld_1` ASC) AS Ergebnis_3
    UNION
    ...

    Ich würde gerne wissen, ob das "normal" ist oder ob das SQL abgewandelt werden muss?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	phpMyAdmin 2018-02-12 10-07-56.png 
Hits:	28 
Größe:	10,0 KB 
ID:	5852  

  2. #2
    Communityservice Avatar von Nils Dornblut
    Registriert seit
    15.10.2000
    Beiträge
    43.429

    AW: SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Hallo roibush,

    es kann sein, dass es sich hier um ein spezielles Verhalten bzw. einen Bug in phpMyAdmin handelt. Was für ein Problem resultiert hieraus?

    Mit freundlichen Grüßen

    Nils Dornblut
    Communityservice
    __________________
    Blog - Facebook - Twitter
    Communitybetreiber: domainfactory GmbH
    Impressum / Pflichtangaben

  3. #3
    Kunde
    Registriert seit
    11.10.2007
    Beiträge
    89

    AW: SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Ich fand es nur irritierend, dass statt der erwarteten SQL-Antwort diese Meldung kam. Hier hätte ich einfach nur ein leeres Resultat erwartet. Die Frage, die mir sich stellt ist, ob ich die SQL Abfrage abändern soll und eine irgendwie geartete IFNULL - Prüfung einbauen muss oder ob das egal ist.

  4. #4
    Forenexperte Avatar von masterframe
    Registriert seit
    16.08.2001
    Beiträge
    8.179

    AW: SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Zitat Zitat von roibush Beitrag anzeigen
    oder ob das egal ist.
    Egal ist 88 .

    Ich würde zur Sicherheit mal ein aktuelles PhpMyAdmin installieren und den Query gegentesten.

    Gruß,
    masterframe
    Alle Postings erfolgen freiwillig und nach bestem Gewissen. Haftung ausgeschlossen. Keine Rechtsberatung. Beschwerden bitte über unser Kontaktformular. WHOAMI

  5. #5
    Kunde
    Registriert seit
    11.10.2007
    Beiträge
    89

    AW: SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Zitat Zitat von masterframe Beitrag anzeigen
    Ich würde zur Sicherheit mal ein aktuelles PhpMyAdmin installieren und den Query gegentesten.
    Leider momentan absolut keine Zeit dafür, kann nur das bereitgestellte PhpMyAdmin in der Altversion verwenden.

  6. #6
    Reseller
    Registriert seit
    12.10.2012
    Beiträge
    17

    AW: SELECT mit UNION auf leere Tabelle in phpMyAdmin

    Dein SQL-Statement enthält syntaktische Fehler.

    Zum Beispiel im zweiten SELECT:

    Code:
    SELECT `Feld_1`, `Feld_2`
    FROM (SELECT `Typ`, `Ticker` 
          FROM `Tabelle` 
          WHERE `Feld_2` = 'b'
          ORDER BY `Feld_1` ASC) AS Ergebnis_2
    Du selektierst die Felder Feld_1 und Feld_2 von einer temporären Tabelle Ergebnis_2,
    die diese Felder aber garnicht enthält.

    Bei mir funktioniert die folgende Abfrage, unabhängig davon, ob die Tabelle leer ist oder nicht
    (ich habe die field_list beim zweiten und dritten SELECT-Statemant korrigiert):

    Code:
    SELECT `Feld_1`, `Feld_2`
    FROM (SELECT `Feld_1`, `Feld_2`
          FROM `Tabelle` 
          WHERE `Feld_2` = 'a'
          ORDER BY `Feld_1` ASC) AS Ergebnis_1
    
    UNION
    
    SELECT `Typ`, `Ticker`
    FROM (SELECT `Typ`, `Ticker` 
          FROM `Tabelle` 
          WHERE `Feld_2` = 'b'
          ORDER BY `Feld_1` ASC) AS Ergebnis_2
    
    UNION
    
    SELECT `Typ`, `Ticker`
    FROM (SELECT `Typ`, `Ticker` 
          FROM `Tabelle` 
          WHERE `Feld_2` = 'c'
          ORDER BY `Feld_1` ASC) AS Ergebnis_3
    Mich wundert, dass Du bei gefüllter Tabelle ein Ergebnis erhältst.

    Diese Weiterleitung kann ich mir allerdings auch nicht erklären.

Ähnliche Themen

  1. Fehlermeldung bei phpMyAdmin bei MySQL-Aufruf für SELECT update_time
    Von roibush im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 6
    Letzter Beitrag: 11.12.2017, 00:20
  2. LEFT JOIN und leere felder in der linken tabelle
    Von Nico im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 1
    Letzter Beitrag: 08.04.2011, 14:26
  3. Problem mit UNION und Ausgabe
    Von hww im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 0
    Letzter Beitrag: 28.06.2009, 07:30
  4. phpMyAdmin Tabelle kopieren?
    Von Maik20 im Forum ManagedServer
    Antworten: 2
    Letzter Beitrag: 29.01.2007, 12:56
  5. union select
    Von p.a.s.t. im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 28.11.2003, 17:41

Stichworte

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •