Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank Tabelle zu Tabelle php sql schneller machen ???

Einklappen

Neue Werbung 2019

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

  • #46
    hellbringer
    tk1234

    Okeeeeeee dann so

    für xamp als sql code zum testen meiner Frage

    PHP-Code:
    SET SQL_MODE "NO_AUTO_VALUE_ON_ZERO";
    SET AUTOCOMMIT 0;
    START TRANSACTION;
    SET time_zone "+00:00";


    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;

    --
    -- 
    Datenbank: `erotikhandel`
    --

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

    --
    -- 
    Tabellenstruktur für Tabelle `table 11`
    --

    CREATE TABLE `table 11` (
      `
    suppliernumberint(5) DEFAULT NULL,
      `
    Anzahlint(2) DEFAULT NULL
    ENGINE=InnoDB DEFAULT CHARSET=utf8;

    --
    -- 
    Daten für Tabelle `table 11`
    --

    INSERT INTO `table 11` (`suppliernumber`, `Anzahl`) VALUES
    (250631),
    (
    359439),
    (
    360801),
    (
    1141610),
    (
    249801),
    (
    295037),
    (
    319743),
    (
    360676),
    (
    235891),
    (
    270225),
    (
    335965),
    (
    360521),
    (
    375241),
    (
    334977),
    (
    360377),
    (
    375131),
    (
    235721),
    (
    290431),
    (
    309841),
    (
    333521),
    (
    90831),
    (
    235511),
    (
    361191),
    (
    115082),
    (
    253462),
    (
    273981),
    (
    338541);
    COMMIT;

    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
    sql abfrage soll alles mit 1 löschen. geht aber nicht , da ich die neue syntax nicht hab.

    Hir ein versuch,

    PHP-Code:
    SELECT suppliernumberCOUNT(suppliernumber) AS Anzahl FROM table_10 GROUP BY suppliernumber ORDER BY `AnzahlASC 
    ps.:
    die abfrage muss dann 1mal pro woche wiederverwendbar sein (wegen Updates der Artikel)

    Kommentar


    • #47
      hellbringer
      tk1234

      ist das so okee für euch ??

      Kommentar


      • #48
        Code:
        MariaDB [test]> SELECT `suppliernumber`
            -> FROM `table 11`
            -> WHERE `Anzahl` = 1;
        +----------------+
        | suppliernumber |
        +----------------+
        |          25063 |
        |          36080 |
        |          24980 |
        |          23589 |
        |          36052 |
        |          37524 |
        |          37513 |
        |          23572 |
        |          29043 |
        |          30984 |
        |          33352 |
        |           9083 |
        |          23551 |
        |          36119 |
        |          27398 |
        |          33854 |
        +----------------+
        16 rows in set (0.000 sec)
        
        MariaDB [test]> DELETE FROM `table 11`
            -> WHERE `Anzahl` = 1;
        Query OK, 16 rows affected (0.010 sec)

        Kommentar


        • #49
          hellbringer

          ja nee

          die anweisung soll alle Datensätze mit Count = 1 löschen

          Die daten sehen ungefähr so aus, (siehe sql code unten)

          und sollen über einen Counter gefiltert werden .
          Damit ermittelt werden kann welche Daten nur 1 mal vorhanden sind.
          Und ganau diese sollen gelöscht werden.

          die andere Tabelle war nur die daraus folgende Tabelle die die Count ausgibt und Auflistet.

          PHP-Code:
          SET SQL_MODE "NO_AUTO_VALUE_ON_ZERO";
          SET AUTOCOMMIT 0;
          START TRANSACTION;
          SET time_zone "+00:00";


          /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
          /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
          /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
          /*!40101 SET NAMES utf8mb4 */;

          --
          -- 
          Datenbank: `erotikhandel`
          --

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

          --
          -- 
          Tabellenstruktur für Tabelle `table 12`
          --

          CREATE TABLE `table 12` (
            `
          suppliernumberint(5) DEFAULT NULL,
            `
          goessevarchar(3) DEFAULT NULL
          ENGINE=InnoDB DEFAULT CHARSET=utf8;

          --
          -- 
          Daten für Tabelle `table 12`
          --

          INSERT INTO `table 12` (`suppliernumber`, `goesse`) VALUES
          (25063's'),
          (
          35943's'),
          (
          35943'l'),
          (
          35943'm'),
          (
          35943'xl'),
          (
          35943'xxl'),
          (
          35943'3xl'),
          (
          35943'4xl'),
          (
          36080'm'),
          (
          11416'xl'),
          (
          11416'xxl'),
          (
          24980'l'),
          (
          29503's'),
          (
          29503'l'),
          (
          29503'm'),
          (
          23589's');
          COMMIT;

          /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
          /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
          /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */

          Kommentar


          • #50
            Code:
            MariaDB [test]> SELECT `suppliernumber`
                -> FROM `table 12`
                -> GROUP BY `suppliernumber`
                -> HAVING COUNT(*) = 1;
            +----------------+
            | suppliernumber |
            +----------------+
            |          23589 |
            |          24980 |
            |          25063 |
            |          36080 |
            +----------------+
            4 rows in set (0.001 sec)
            
            MariaDB [test]> DELETE FROM `table 12`
                -> WHERE `suppliernumber` IN (
                ->     SELECT `suppliernumber`
                ->     FROM `table 12`
                ->     GROUP BY `suppliernumber`
                ->     HAVING COUNT(*) = 1
                -> );
            Query OK, 4 rows affected (0.004 sec)

            Kommentar


            • #51
              hellbringer

              genial das is es

              geh aber erst ma schlafen dann test ich's gleich

              und sag dann bescheid

              Kommentar


              • #52
                hellbringer

                schade hat nicht geklapt
                PHP-Code:
                DELETE FROM table_12
                WHERE 
                `suppliernumberIN (
                SELECT `suppliernumber`
                FROM table_12
                GROUP BY 
                `suppliernumber`
                HAVING COUNT(*) = 1); 
                #1093 - Table 'table_12' is specified twice, both as a target for 'DELETE' and as a separate source for data
                # 1093 - Die Tabelle 'table_12' wird zweimal angegeben, sowohl als Ziel für 'DELETE' als auch als separate Datenquelle

                das schon
                PHP-Code:
                SELECT `suppliernumber`
                FROM table_12
                GROUP BY 
                `suppliernumber`
                HAVING COUNT(*) = 

                Kommentar


                • #53
                  Welchen Datenbankserver bzw. Version davon verwendest du?

                  Kommentar


                  • #54
                    #1093 - Table 'table_12' is specified twice, both as a target for 'DELETE' and as a separate source for data
                    Ein table alias sollte da helfen.

                    Kommentar


                    • #55
                      Server-Version: 10.1.36-MariaDB
                      PHP-Version: 7.2.11

                      Kommentar


                      • #56
                        Interessant, mit 10.4.11-MariaDB läufts problemlos.

                        Kommentar


                        • #57
                          hellbringer

                          welches xampp hast'n installiert ?

                          Kommentar


                          • #58
                            Dormilich

                            geht auch nicht

                            PHP-Code:
                            DELETE FROM table_12
                            WHERE 
                            `suppliernumberIN (
                            SELECT `suppliernumber` AS supplier
                            FROM table_12 
                            AS table12
                            GROUP BY 
                            `suppliernumber`
                            HAVING COUNT(*) = 1); 

                            Kommentar


                            • #59
                              Zitat von 10user1000 Beitrag anzeigen
                              welches xampp hast'n installiert ?
                              xampp-windows-x64-7.4.6-0-VC15-installer.exe

                              Kommentar

                              Lädt...
                              X