Forum Doku Wiki Blog

Forumsarchiv 2004, August
Access XP: UPDATE mit INNER JOIN möglich?

archivierte Beiträge lesen

  1. (DATENBANK) Access XP: UPDATE mit INNER JOIN möglich? von small-step, 26. 08. 2004, 15:44

Access XP: UPDATE mit INNER JOIN möglich?

Der folgende Beitrag wurde am 26. 08. 2004, 15:44 Uhr von small-step veröffentlicht.

Hallo alle,

ich habe ein kleines Problem. Ich möchte in einer Tabelle eine Spalte updaten. Allerdings nur, wenn dieser Eintrag zu einem bestimmten Eintrag in einer anderen Tabelle gehört. Klingt jetzt ein wenig seltsam, ich weiß nicht genau, wie ich die Beziehungen sonst darstellen soll, aber ein Beispiel:

Aktualisiert werden soll die Rechnungsnummer in der Tabelle Arbeitszeit bei den Einträgen, die über die Tabelle Projektliste mit einem Eintrag der Tabelle Projekte verknüpft sind. Ich habe es mit etwas in dieser Art versucht

UPDATE tbArbeitszeit
    (INNER JOIN tbProjektliste
        ON tbProjekte.PKProjekt = tbProjektliste.FKProjekt)
            INNER JOIN tbArbeitszeit
                ON tbProjektliste.PKProjektliste = tbArbeitszeit.FKProjektliste
    SET tbArbeitszeit.Rechnung = '4-1093534116'
    WHERE tbProjekte.PKProjekt = 4

Allerdings scheine ich einen Syntaxfehler eingearbeitet zu haben.

Kann, mag mir jemand helfen? :-)

Danke schonmal!

small-step

Access XP: UPDATE mit INNER JOIN möglich?

Der folgende Beitrag wurde am 26. 08. 2004, 19:13 Uhr von Martin Speiser veröffentlicht.

Hi small-step,

also ich muss zugeben, Access kenne ich nicht, aber SQL-Server. Aber aus deinem Statement werde ich nicht so recht schlau. Du machst Bedingungen auf tbProjekte, machst aber keinen JOIN darauf, und machst sogar ne Bedingung auf die Tabelle zweimal?

Generell sieht's bei SQL-Server so aus:
UPDATE <tabelle>
SET <Feld>=<Wert>
INNER JOIN <zweite Tabelle>
 ON <Bedingung>
WHERE <Bedingung>

Ist nur skizzenhaft natürlich, das komplette findest du in der Hilfe.

Gruß,
Martin

Access XP: UPDATE mit INNER JOIN möglich?

Der folgende Beitrag wurde am 26. 08. 2004, 23:29 Uhr von Vinzenz veröffentlicht.

Hallo small-step,

> Aktualisiert werden soll die Rechnungsnummer in der Tabelle Arbeitszeit bei den Einträgen, die über die Tabelle Projektliste mit einem Eintrag der Tabelle Projekte verknüpft sind. Ich habe es mit etwas in dieser Art versucht

Verstehe ich das richtig:
Du hast drei Tabellen

  tbArbeitszeit
      FKProjektliste
      Rechnung
      [...]
  tbProjekte
      PKProjekt
      [...]
  tbProjektliste
      FKProjekt
      PKProjektliste
      [...]

  und folgenden Beziehungen:

  tbProjekte     1:n tbProjektliste (d.h. zu einem Projekt können mehrere Projektlisten gehören)
  tbProjektliste 1:n tbArbeitszeit  (d.h. zu jeder Projektliste können mehrere Arbeitszeiten)

>
> UPDATE tbArbeitszeit
>     (INNER JOIN tbProjektliste
>         ON tbProjekte.PKProjekt = tbProjektliste.FKProjekt)
>             INNER JOIN tbArbeitszeit
>                 ON tbProjektliste.PKProjektliste = tbArbeitszeit.FKProjektliste
>     SET tbArbeitszeit.Rechnung = '4-1093534116'
>     WHERE tbProjekte.PKProjekt = 4
>
> Allerdings scheine ich einen Syntaxfehler eingearbeitet zu haben.

Dann machst Du Dir die Arbeit viel zu kompliziert:

    UPDATE tbArbeitszeit a
        INNER JOIN tbProjektliste pl ON a.FKProjektliste = pl.PKProjektliste
    SET a.Rechnung = '4-1093534116'
    WHERE pl.FKProjekt = 4

sollte es tun.


Freundliche Grüsse,

Vinzenz

Access XP: UPDATE mit INNER JOIN möglich?

Der folgende Beitrag wurde am 27. 08. 2004, 08:39 Uhr von small-step veröffentlicht.

Hallo Vinzenz,

> Dann machst Du Dir die Arbeit viel zu kompliziert:

Ach du Schande, das ist mir überhaupt nicht aufgefallen... wie peinlich. Ich probier es gleich aus. Dankeschön schonmal für die Hilfe!

Gruß,
small-step

Access XP: UPDATE ... Dankeschön! Es funktioniert

Der folgende Beitrag wurde am 27. 08. 2004, 08:47 Uhr von small-step veröffentlicht.

Hallo an alle!

Danke für die Hilfe, mit der von Vinzenz hat es funktioniert. Möglicherweise sollte ich mich mit joins mal etwas genauer befassen.

Ich wünschte, Access wäre ähnlich dokumentiert wie MySQL. Oder gibt es etwas, das ich nicht kenne? Los, raus mit den Links! :)

Gruß,
small-step

Access XP: UPDATE ... Dankeschön! Es funktioniert

Der folgende Beitrag wurde am 27. 08. 2004, 13:33 Uhr von Martin Speiser veröffentlicht.

Hi,

> Ich wünschte, Access wäre ähnlich dokumentiert wie MySQL. Oder gibt es etwas, das ich nicht kenne? Los, raus mit den Links! :)

ich finde, die MSDN ist die beste Doku die es gibt. Direkteinsprung zu Access: http://msdn.microsoft.com/library/en-us/dnanchor/html/odc_ancaccess.asp

Gruß,
Martin

Access XP: UPDATE ... Dankeschön! Es funktioniert

Der folgende Beitrag wurde am 27. 08. 2004, 14:02 Uhr von small-step veröffentlicht.

Hallo Martin,

> ich finde, die MSDN ist die beste Doku die es gibt. Direkteinsprung zu Access: http://msdn.microsoft.com/library/en-us/dnanchor/html/odc_ancaccess.asp

Hm... ich weiß nicht. Entweder ich bin zu blöd mit der MSDN zurechtzukommen, oder sie ist der letzte Dreck. Um Dich glücklich zu machen vermute ich jetzt einfach mal ersteres :)

Ich will eine so wunderbare Referenz wie auf http://www.php.net/manual/de/ mit den wirklich nützlichen Beispielen oder auf http://dev.mysql.com/doc/mysql/de/index.html. Es muss ja nicht auf Deutsch sein. Wäre zwar nicht schlecht, geht aber auch so. Wo ist denn die MSDN bitte derart umfangreich, übersichtlich und vor allem vollständig? Wahrscheinlich bin ich wirklich zu blöd.

Gruß,
small-step

Los, raus mit euren Links!

Der folgende Beitrag wurde am 31. 08. 2004, 10:16 Uhr von small-step veröffentlicht.

Hallo alle!

> Ich will eine so wunderbare Referenz wie auf http://www.php.net/manual/de/ mit den wirklich nützlichen Beispielen oder auf http://dev.mysql.com/doc/mysql/de/index.html. Es muss ja nicht auf Deutsch sein. Wäre zwar nicht schlecht, geht aber auch so. Wo ist denn die MSDN bitte derart umfangreich, übersichtlich und vor allem vollständig? Wahrscheinlich bin ich wirklich zu blöd.

Ach kommt schon... es wird doch jemanden hier geben, der eine bessere Doku kennt, oder?

Gruß,
small-step

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4