Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: TravelPounce am März 02, 2023, 07:44:01

Titel: UPDATE mit zwei Tabellen ohne JOIN Möglichkeit
Beitrag von: TravelPounce am März 02, 2023, 07:44:01
Hallo liebe Access-Freunde,

ich habe eine Frage zu einer Situation wo ich aktuell nicht weiterkomme. Ich habe zwei Tabellen: ,,TBL_INFOS" und ,,TBL_MASTER_DATA". In der TBL_INFOS existieren folgende Attribute:

ID, FLAG_KNOWN, FLAG_REG, FLAG_CHECK, CONTENT

In der TBL_MASTER_DATA sind es:
ID, FLAG_KNOWN, FLAG_REG, SEARCH_TEXT

Die Verwendung ist wie folgt:
In der Tabelle INFOS ist im Attribut ,,CONTENT" ein Längerer Text enthalten. Je nach Inhalt müssten die FLAG-Attribute (Checkboxen) aktiviert oder eben inaktiv sein.
Damit das setzen dieser FLAGS teilweise automatisch (durch eine Update-Anweisung) passieren kann, gibt es die Tabelle ,,MASTER_DATA". Hier ist eine Zeichenkette im Attribut ,,SEARCH_TEXT" hinterlegt. Zusätzlich sind die FLAGS hier entsprechend vorbelegt.

Nun soll das Verfahren wie folgt sein:
Es wird mit dem Suchtext aus der MASTER_DATA in der TBL_INFOS in den CONTENT gesucht.
Wird der Suchtext gefunden, sollen die in der MASTER_DATA hinterlegten FLAG-Kombinationen in die TBL_INFOS übertragen werden.



Ich wollte dazu ein Update-SQL aufsetzen, aber leider funktioniert es nicht mit Subselects.
Die einzige Möglichkeit, die ich sonst gesehen habe, ist über einen JOIN der beiden Tabellen.
Aber ich habe leider kein eindeutiges Attibut auf das ich im JOIN die Verbindung herstellen kann.
Ein Anfängerversuch einen JOIN mit ,,LIKE" zu probieren, ist gescheitert.


Deshalb wollte ich hier einmal fragen ob es eine Möglichkeit gibt, das Vorhaben oben umzusetzen. Über eine Rückmeldung würde ich mich sehr freuen.

Vielen Dank!
Titel: Re: UPDATE mit zwei Tabellen ohne JOIN Möglichkeit
Beitrag von: markusxy am März 02, 2023, 08:59:32
Eine Möglichkeit ist die Nutzung von Exits im Where Segment etwa so:

Update TBL_INFOS Set .... WHERE EXITS(Select 0 from TBL_MASTER_DATA md where TBL_INFOS.Text like '*' & md.Suchtext & '*' and ....)
Ein Join ohne ON Bedingung geht natürlich nicht. Like wird da nicht unterstüzt, aber ein Cross Join kann verwendet werden.

In Access schreibt man da einfach die Tabellen ohne Join also bei einen normalen Select:

Select ...
FROM TBL_INFOS ti, TBL_MASTER_DATA md
where md.. like ti..

Sollte dann als Update genauso funktionieren.
Was du nicht verstehst, bitte vorerst mal selbst googeln und dann zeige deine Versuche bzw. die Lösung, falls du es selbst lösen kannst.

LG Markus
Titel: Re: UPDATE mit zwei Tabellen ohne JOIN Möglichkeit
Beitrag von: ebs17 am März 02, 2023, 10:56:09
Abgesehen von einer technischen Umsetzung wie gewollt:
Dein Aufbau ist falsch und verstößt gleich zweimal gegen gute Regeln (Normalisierung):

=> Abhängigkeit von Feldern im Datensatz?
=> Don't use Yes/No fields to store preferences (http://allenbrowne.com/casu-23.html)

Mit falschen Tabellenstrukturen darf man grundsätzlich mehr Arbeit und Probleme wegen der Würgarounds erwarten.

Titel: Re: UPDATE mit zwei Tabellen ohne JOIN Möglichkeit
Beitrag von: TravelPounce am März 02, 2023, 17:53:47

Hi Markus,

die zweite Variante hat funktioniert!
Vielen Dank für die schnelle Hilfe