[SQL allgemein] Group by und Order by - Höchste ID

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

  • #16
    Original geschrieben von krel
    also irgendwie passen ausgabe und Tabelleninhalt nicht zusammen, hast du zwischen abfrage und screenshot noch was in der DB geändert?
    mach mal nen Dump und häng den an
    Ich muss erstmal schaun wie ich nur die Stuktur bekomme ohne die Daten...

    So:
    • -- phpMyAdmin SQL Dump
      -- version 2.11.9.2
      -- http://www.phpmyadmin.net
      --
      -- Host: localhost
      -- Erstellungszeit: 03. Dezember 2008 um 12:39
      -- Server Version: 5.0.67
      -- PHP-Version: 5.2.6

      SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

      --
      -- Datenbank: `miloga`
      --

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `error_reporting`
      --

      CREATE TABLE IF NOT EXISTS `error_reporting` (
      `error_reporting_id` int(10) unsigned NOT NULL auto_increment,
      `error_reporting_fromid` int(10) NOT NULL,
      `error_reporting_timestamp` int(50) NOT NULL,
      `error_reporting_error` text NOT NULL,
      `error_reporting_ip` varchar(50) NOT NULL,
      `error_reporting_uri` varchar(250) NOT NULL,
      PRIMARY KEY (`error_reporting_id`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=41 ;

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `mailbox`
      --

      CREATE TABLE IF NOT EXISTS `mailbox` (
      `mailbox_fromid` int(11) NOT NULL,
      `mailbox_toid` int(11) NOT NULL,
      `mailbox_subject` text NOT NULL,
      `mailbox_message` text NOT NULL,
      `mailbox_timestamp` int(11) NOT NULL,
      `mailbox_status` int(11) NOT NULL default '1',
      `mailbox_id` int(10) unsigned NOT NULL auto_increment,
      PRIMARY KEY (`mailbox_id`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `user`
      --

      CREATE TABLE IF NOT EXISTS `user` (
      `user_id` int(10) unsigned NOT NULL auto_increment,
      `user_registertime` int(11) NOT NULL,
      `user_nick` varchar(50) NOT NULL,
      `user_email` varchar(50) NOT NULL,
      `user_password` varchar(50) NOT NULL,
      `user_************` varchar(50) NOT NULL,
      `user_type` int(11) NOT NULL default '3',
      PRIMARY KEY (`user_id`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;

    Kommentar


    • #17
      naja Daten wären auch nicht schlecht, du kannst das ganze von PHPmyAdmin übrigens auch als SQl File "runterladen", und das File dann hier anhängen

      Kommentar


      • #18
        Original geschrieben von krel
        naja Daten wären auch nicht schlecht, du kannst das ganze von PHPmyAdmin übrigens auch als SQl File "runterladen", und das File dann hier anhängen
        Angehängte Dateien

        Kommentar


        • #19
          so nach etwas nachdenken ist mir klar geworden, dass wir hier nie die ganze Zeile selektieren sondern nur die größte ID einfach auslesen, mit dem Subselect funktionierts auf jeden Fall
          PHP-Code:
          SELECT 
           user_nick

           
          user_id
           
          mailbox_id
           
          mailbox_fromid
           
          mailbox_toid
           
          mailbox_timestamp
           
          SUMmailbox_status ) AS mailbox_status,  
           
          mailbox_subject,
           
          mailbox_message
          FROM 
           mailbox

           
          user
          WHERE 
           mailbox_toid 
          ".$_SESSION['id']." AND 
           
          mailbox_id 
            (
          SELECT 
              MAX
          (mailbox_id
             
          FROM 
              mailbox 
            WHERE mailbox_toid 
          ".$_SESSION['id'].") AND
           
          user_id mailbox_fromid
          GROUP BY 
           mailbox_fromid
          ORDER BY 
           mailbox_id DESC 

          Kommentar


          • #20
            Super. Dankeschön.
            Eine Frage hätte ich da noch.
            Kann ich soetwas machen?:

            PHP-Code:
            SELECT MAX(id) AS max_id FROM irgendwas WHERE user ich AND max_id id 
            ???
            Oder ist "max_id" nur bei der ausgabe vorhanden?

            Kommentar


            • #21
              die abfrage wird so nicht funktionieren, aber wenn du nur die max(id) von einem User brauchst funktioniert das ohne das letzte max_id=id

              Kommentar


              • #22
                Original geschrieben von krel
                die abfrage wird so nicht funktionieren, aber wenn du nur die max(id) von einem User brauchst funktioniert das ohne das letzte max_id=id
                Das hat jetzt nichts mit dem vorgänger zutun, sondern unser Projekt hat eben die ganze Mitarbeiterschafft in Rage versetzt, da unser Chef in die Datenbank Rückläufige Einträge gemacht hat, welche die Stuktur durcheinander und somit das Programm falsche Angaben machte

                PHP-Code:
                SELECT MAX(id), NameTelefon FROM irgendwas WHERE user ich 
                So würde ich die ID, den Namen und die Telefon rausbekommen, richtig?
                Und zwar NUR, von dem User mit der Max(id).. ?

                Kommentar


                • #23
                  Original geschrieben von krel
                  so nach etwas nachdenken ist mir klar geworden, dass wir hier nie die ganze Zeile selektieren sondern nur die größte ID einfach auslesen, mit dem Subselect funktionierts auf jeden Fall
                  PHP-Code:
                  SELECT 
                   user_nick

                   
                  user_id
                   
                  mailbox_id
                   
                  mailbox_fromid
                   
                  mailbox_toid
                   
                  mailbox_timestamp
                   
                  SUMmailbox_status ) AS mailbox_status,  
                   
                  mailbox_subject,
                   
                  mailbox_message
                  FROM 
                   mailbox

                   
                  user
                  WHERE 
                   mailbox_toid 
                  ".$_SESSION['id']." AND 
                   
                  mailbox_id 
                    (
                  SELECT 
                      MAX
                  (mailbox_id
                     
                  FROM 
                      mailbox 
                    WHERE mailbox_toid 
                  ".$_SESSION['id'].") AND
                   
                  user_id mailbox_fromid
                  GROUP BY 
                   mailbox_fromid
                  ORDER BY 
                   mailbox_id DESC 
                  Leider klappt das ganze nicht so, weil mir nun die Einträge der User feheln, die MIR schreiben.
                  Und diese Nachrichten sollen in die Abfrage eingebunden werden.
                  Mal sehen ob ich das noch hinbekomme

                  Kommentar

                  Lädt...
                  X