Ankündigung

Einklappen
Keine Ankündigung bisher.

Update mit INNER JOIN über 2 Tabellen

Einklappen

Neue Werbung 2019

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

  • Update mit INNER JOIN über 2 Tabellen

    Guten Tag,
    Ich möchte die Spalte(i2) der ersten Tabelle(Ausgaben_Themen) mit der gebildeten Summe aus einer anderen Tabelle(tw2,Spalte Thema) updaten

    Versucht habe ich folgendes:

    Update a
    SET a.i2 = t.topic_count
    FROM Ausgaben_Themen a
    INNER JOIN
    (SELECT ausgabe,COUNT(thema) topic_count FROM `tw2`
    WHERE thema LIKE 'i2%'
    GROUP BY ausgabe) b
    ON b.ausgabe = a.ausgabe

    und das:

    Update a
    SET a.i2 = (SELECT ausgabe,COUNT(thema) FROM `tw2`
    WHERE thema LIKE 'i2%'
    GROUP BY ausgabe)
    FROM Ausgaben_Themen a
    INNER JOIN tw2 b ON b.ausgabe = a.ausgabe

    Beide male zeigt er einen Syntaxfehler an - Idee was ich falsch mache?

    Danke vorab
    didi

  • #2
    Das sagt dir der Syntax-Fehler, was du falsch machst.
    [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

    Kommentar


    • #3
      Dies :#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

      Kommentar


      • #4
        Hast du jemals eine UPDATE-Anweisung geschrieben? Versuch dich erstmal an was kleinem, dann fällt dir der Fehler bestimmt selbst auf.
        [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

        Kommentar


        • #5
          Jepp habe ich - hat sogar funktioniert

          Kommentar


          • #6
            Und da hast du auch

            Code:
            UPDATE x
            SET a = b
            FROM x
            WHERE y = z
            verwendet? Das ist nämlich schlichtweg falsch. Du sagst MySQL mit "UPDATE x" ja schon, dass du Tabelle x aktualisieren willst. Warum sagst du dann danach nochmal "von Tabelle x"?
            [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

            Kommentar


            • #7
              Hatte mich als Anfänger an diesem Beispiel orientiert. OK ich versuche es dann mal ohne FROM...

              Kommentar


              • #8
                Zitat von didijo Beitrag anzeigen
                Guten Tag,
                Ich möchte die Spalte(i2) der ersten Tabelle(Ausgaben_Themen) mit der gebildeten Summe aus einer anderen Tabelle(tw2,Spalte Thema) updaten
                Nein, willst Du nicht, weil das redundant ist.


                Andreas
                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar


                • #9
                  @akretschmer - möchte ich doch weil ich eine Tabelle/View benötige wo zu jeder Ausgabe konsolidiert alle Themen (ca. 250) der Anzahl nach enhalten sind, dient unter anderem zur Berechnung eine Art Themengewichtung. didi

                  P.S. auch wenn ich FROM lösche, umstelle... geht es nicht.

                  Kommentar


                  • #10
                    Zitat von didijo Beitrag anzeigen
                    @akretschmer - möchte ich doch weil ich eine Tabelle/View benötige wo zu jeder Ausgabe konsolidiert alle Themen (ca. 250) der Anzahl nach enhalten sind, dient unter anderem zur Berechnung eine Art Themengewichtung. didi

                    P.S. auch wenn ich FROM lösche, umstelle... geht es nicht.
                    Du willst keine Tabelle updaten. Du suchst ein SELECT, aus dem Du vielleicht ein VIEW machst.

                    Andreas
                    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                    Kommentar


                    • #11
                      Wie könnte ich mir dann eine solche View aufbauen - habe ich noch nie gmacht?

                      Kommentar


                      • #12
                        Zitat von didijo Beitrag anzeigen
                        Wie könnte ich mir dann eine solche View aufbauen - habe ich noch nie gmacht?
                        Code:
                        test=# \h create view
                        Command:     CREATE VIEW
                        Description: define a new view
                        Syntax:
                        CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ ( column_name [, ...] ) ]
                            [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
                            AS query
                        
                        test=#
                        Andreas
                        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                        Kommentar


                        • #13
                          einfach dein SELECT bilden und dann davor schreiben CREATE VIEW name AS dein SELECT aber du benötigst dafür die nötigen rechte.. einige webspace anbieter haben es deaktiviert
                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                          Kommentar

                          Lädt...
                          X