Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
226
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2005
    Ort
    München
    Beiträge
    5
    Hallo zusammen,

    war gar nicht so einfach den Titel zu benennen und ehrlich gesagt bin ich immer noch nicht zufrieden damit

    Ich möchte die Datensätze einer Tabelle mit den Daten einer anderen Tabelle updaten. Schwierigkeit (für mich) liegt dabei, dass es jeweils die letzten Datensätze einer bestimmten ID sein sollen:

    Der Inhalt der ersten Tabelle node_comment_statistics:

    | nid | last_comment_timestamp | last_comment_uid |
    |------+------------------------+------------------|
    | 1117 | 1283527141 | 2205 |
    | 1118 | 1283527098 | 1205 |



    die zweite Tabelle comments:

    | cid | nid | uid | timestamp |
    |-----+------+------+------------|
    | 1 | 1118 | 1205 | 1283527098 |
    | 2 | 1117 | 2205 | 1283527141 |
    | 3 | 1118 | 1214 | 1283527210 |
    | 4 | 1118 | 4711 | 1283527230 |
    | 5 | 1117 | 1815 | 1283527277 |

    In diesem Beispiel sollte die abzuändernde Tabelle nod_comment_statistics eigentlich so aussehen:

    | nid | last_comment_timestamp | last_comment_uid |
    |------+------------------------+------------------|
    | 1117 | 1283527277 | 1815 |
    | 1118 | 1283527230 | 4711 |


    Meine folgende Abfrage dated aber leider nur die erste Zeile (nid: 1117) ab:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    UPDATE node_comment_statistics AS n,
    (
    SELECT comments.cid, comments.nid, comments.uid, comments.timestamp
    FROM comments, node_comment_statistics
    WHERE comments.nid=node_comment_statistics.nid
    ORDER BY cid DESC LIMIT 1
    ) AS c
    SET n.last_comment_timestamp=c.timestamp,
    n.last_comment_uid=c.uid
    WHERE n.nid=c.nid

    Kann mir jemand weiterhelfen?

    Viele Grüße

    Matthias
    Geändert von Matthias Becker (04.09.10 um 20:31 Uhr)
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    4.640
    MySQL?
    Könnte etwa so gehen
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    UPDATE node_comment_statistics AS n
    SET n.last_comment_uid = (
        SELECT
            c.uid
        FROM 
            comments AS c
        WHERE 
            ROW(c.mid, c.tuimestamp) IN (
                SELECT
                    cmax.nid,
                    MAX(cmax.TIMESTAMP) AS lastTimestamp
                FROM comments AS cmax
                WHERE cmax.nid = n.nid
                GROUP BY cmax.nid
            )
    );
     
    ---------------------------------------------------------------------------------------------------
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. MYSQL: Update mit werten aus anderer Tabelle
    Von Opor im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 11.03.10, 16:23
  2. SQL UPDATE mit Werten aus anderen Doks der gleichen Tabelle
    Von klaussp im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 11.02.09, 13:13
  3. [MySQL] UPDATE einer Tabelle mit Einträgen aus einer anderen
    Von HamstaH im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 14.01.09, 10:11
  4. 1 Wert mit 2 Werten aus einer anderen Tabelle Verknüpfen
    Von Skyhead im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 04.10.08, 20:48
  5. UPDATE in einer Tabelle mit Werten aus verschiedenen Tabellen
    Von T21 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 19.07.05, 09:33