Abfrage umschreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage umschreiben

    Halli, hallo,

    irgendwie ist heute der Gott des Postens nicht bei mir.

    Aber ich gebe nicht auf.

    Ich brauche einen kreativen Schubs und hoffe, dass Ihr mir helfen könnt.

    Ich habe eine Spielerdatenbank ( spieler ). Da sind alle Spieler mit Namen und Nummer ( nr ) eingegeben. Ab und an hat ein Spieler eine alternative Nummer ( nralt ). Ich habe eine Abfrage erstellt, bei der mir alle je vergebenen / eingegebenen Nummern ( nr und nralt ) mit Namen ausgegeben werden. Ohne Doppelte.
    Das klappt auch wunderbar.

    Ich habe die MySQl Funktion UNION benutzt. Leider funktioniert der Befehl auf dem Provider-Server nicht und ich muss meine Abfrage umschreiben.

    Ich habe aber überhaupt keine Idee wie.

    Vielleicht steht mein Beitrag im falschen Forum. Mein Ansatz war nur, mein Problem über PHP zu lösen.

    Verzweifelte Grüße
    Sylvia

    PHP-Code:
    $verbindung = @mysql_connect("localhost","root","");
    if (!
    $verbindung ) { echo "Keine Verbindung möglich!\n"; exit; }
    $abfrage ="SELECT nr, vorname, name FROM spieler WHERE nr != ''  
    UNION SELECT nralt, vorname, name FROM spieler WHERE nralt != ''
    ORDER BY nr"
    ;
    $erg mysql_db_query("spieler",$abfrage,$verbindung); 
    while (list( 
    $nr$vorname$name) = mysql_fetch_row($erg)){
    echo 
    "
    $nr $vorname $name<br>
    "
    ; } 
    mysql_close($verbindung

  • #2
    wenn UNION nicht unterstützt ist dann bleibt dir IMHO nur über 2 getrennte
    select, beide Ergebnisse packst du aber in einem array und arbeitet wei bisher.

    Kommentar


    • #3
      *moved to sql pls*

      warum ein union weshalb willst du die sql select Abfragen miteinander verknüpfen???

      Code:
      $sql="SELECT nr, nralt, vorname, name FROM spieler WHERE nr != '' or nralt != ''
      ORDER BY nr";
      Damit erhälst du auch nr und nralt je Zeile und geordnet nach nr....

      Hab im Manual aber nicht geschaut ob da noch mehrere alternative orders möglich sind....
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Hallo Payne_of_Death,

        ich brauche eine gemeinsame Ausgabe von nr und nralt. Wenn ich die Abfrage wie oben mache, kann ich $nr oder $nrlat ausgeben, aber nicht beides zusammen - aufsteigend.

        Hallo asp2php,
        das habe ich auch schon überlegt. Aber ich stehe völlig auf dem Schlauch und weiss nicht, wie ich das machen soll.
        Anfanger ...

        Viele Grüße und schönen Samstag
        Sylvia

        Kommentar


        • #5
          Hallo

          Der UNION klappt wegen einer älteren MySQL-Version
          nicht (3.XX, Version abfragen mit SQL: show variables)

          Im SQL geht's auch, aber nur mit Schreibbrerchtigung,
          am besten mit einer temporären Tabelle, damit mehrere
          gleichzeitig diese Abfrage starten können.

          1: create temporary table tmp1 select SPALTEN from TABELLE1
          2: insert into tmp1(SPALTEN) select SPALTEN from TABELLE2
          3: select * from tmp1 order by...

          Die Tabelle tmp wird nach dem Schliessen der
          connection vom Server gelöscht, zwischen den 3 SQLs
          darf die connection also nicht geschlossen und wieder geöffnet werden.

          Kommentar


          • #6
            Hab die Sache nur kurz überflogen...

            Aber denke eigentlich auch, dass ein Union vollkommen überflüssig ist,
            schliesslich gibts in MYSQl auch IF() etc !

            Oder, mal anders gedacht wie oft kann denn ein Spieler (mit wievielen Nummern) erscheinen? Was ist denn der Primary Index?
            chansel0049
            ----------------------------------------------------
            if you've reached the bottomline - dig further!
            Übersetzer gesucht? http://www.babelport.com

            Kommentar


            • #7
              Hallo zusammen,

              durch einiges frickeln habe ich das Problem gelöst.

              Danke für Eure Hilfe.

              Viele Grüße
              Sylvia

              Kommentar

              Lädt...
              X