UPDATE-Probl. mit 2 Tabellen

UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 20:13:16 von j_wenke

Hi Leute,
was könnte hier falsch sein?

Bei diesen Tabellen (in einer DB)
----------------
TABLE cc (
id tinyint(4) NOT NULL auto_increment,
ss varchar(80) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

TABLE eintraege (
id tinyint(4) NOT NULL auto_increment,
name varchar(80) default NULL,
....
goa tinyint(4) default NULL,
....
PRIMARY KEY (id)
) TYPE=MyISAM;

dieses statement oder abfrage:
----------------
UPDATE eintraege, cc SET cc.id = eintraege.goa WHERE eintraege.name = cc.ss;
SELECT * FROM eintraege;

ergibt immer den
----------------
Fehler in der Syntax bei ' cc SET cc.id = ...' in Zeile 1.

Es soll nat. (eigentlich) die passende cc.id in eintraege.goa
eingetragen werden, da wo die eintraege.varchar mit der cc.- übereinstimmen.
irgendwie komme ich nit drauf ... |-(
(habe hier mysql 3.23 & mysql-front)

Danke für Hilfen,
Jörg

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 20:16:44 von Kai Ruhnau

j_wenke wrote:
^^^^^^^

Wer?

> Hi Leute,
> was könnte hier falsch sein?

Ist das ein Ratespiel?

[snip]
> dieses statement oder abfrage:
> ----------------
> UPDATE eintraege, cc SET cc.id = eintraege.goa WHERE eintraege.name =
> cc.ss;
> SELECT * FROM eintraege;
>
> ergibt immer den
> ----------------
> Fehler in der Syntax bei ' cc SET cc.id = ...' in Zeile 1.

Na also, dann wird wohl ein Fehler in der Syntax sein.

> Es soll nat. (eigentlich) die passende cc.id in eintraege.goa
> eingetragen werden, da wo die eintraege.varchar mit der cc.-
> übereinstimmen.
> irgendwie komme ich nit drauf ... |-(
> (habe hier mysql 3.23 & mysql-front)

Was sagt denn das Handbuch zu der von dir verwendeten Syntax?

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 22:33:37 von j_wenke

Hi Kai
> ...
> Was sagt denn das Handbuch zu der von dir verwendeten Syntax?
mir nix - deshalb poste ich ja
Gruß, Jörg

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 22:39:00 von Kai Ruhnau

j_wenke wrote:
> Hi Kai
>> ...
>> Was sagt denn das Handbuch zu der von dir verwendeten Syntax?
> mir nix - deshalb poste ich ja
> Gruß, Jörg

Wo ist der Zusammenhang? -> http://learn.to/quote

Und trag' bitte deinen richtigen Namen in deinem Newsreader ein. Das
erhöht die Chancen auf Antworten enorm.

Was aus dem Handbuch hast du denn gelesen?

Was verstehst du von
http://dev.mysql.com/doc/refman/4.1/en/update.html
nicht?

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 23:00:06 von j_wenke

Kai Ruhnau schrieb:
> ...
> Was verstehst du von
> http://dev.mysql.com/doc/refman/4.1/en/update.html
> nicht?
hattes m.E. so wie beschrieben gemacht.
wenn dir ein fehler auffällt, sags doch in *einem* satz.
Danke, Gruß, Jörg

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 23:06:53 von Norbert Melzer

Am Fri, 04 Aug 2006 23:00:06 +0200 schrieb j_wenke:

> Kai Ruhnau schrieb:
>> ...
>> Was verstehst du von
>> http://dev.mysql.com/doc/refman/4.1/en/update.html
>> nicht?
> hattes m.E. so wie beschrieben gemacht.
> wenn dir ein fehler auffällt, sags doch in *einem* satz.
> Danke, Gruß, Jörg

Ausnahmsweise:
Starting with MySQL 4.0.4, you can also perform UPDATE operations
covering multiple tables.

Das ist der für Dich wichtige Satz aus der Doku, wenn Du jetzt immer
noch nicht weißt was Du zu tun hast, dann suche einfach weiter in der
Doku nach dem Schlagwort Update :-)

Re: UPDATE-Probl. mit 2 Tabellen

am 04.08.2006 23:11:36 von Kai Ruhnau

j_wenke wrote:
> Kai Ruhnau schrieb:
>> ...
>> Was verstehst du von
>> http://dev.mysql.com/doc/refman/4.1/en/update.html
>> nicht?
> hattes m.E. so wie beschrieben gemacht.

Ich zitiere (!)

Starting with MySQL 4.0.4, you can also perform UPDATE operations
covering multiple tables.

> wenn dir ein fehler auffällt, sags doch in *einem* satz.

Hey - so, wie du hier reinplatzt und gewisse Gepflogenheiten ignorierst,
brauchst du dich nicht zu wundern, wenn ich kurz angebunden bin.

http://www.wortrei.ch/usenet/netzkultur/haendeschuetteln.php

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: UPDATE-Probl. mit 2 Tabellen

am 05.08.2006 00:45:14 von j_wenke

Hallo & Danke!
> ...
> Starting with MySQL 4.0.4, you can also perform UPDATE operations
> covering multiple tables.
>
sprich: mit 3.23 gehts nicht so, wie ichs geschrieben habe
(hab übrigends im refman-4.0-de.html.zip gekuckt - u.a.)
was ist der unterschied zw
table_references
und
tbl_name

> Hey - so, wie du hier reinplatzt
na ja, die postings erscheinen schnell
> und gewisse Gepflogenheiten ignorierst,
no comment - solange man mich noch versteht ... ;-)
> brauchst du dich nicht zu wundern, wenn ich kurz angebunden bin.
ist nicht böse gemeint, es ist nur, dass
manch "ausFührungen" mir hier so auf den zeiger
geht, das ich leicht etwas übersensibel reagiere. :-(
(die gruppe meide ich daher eigentl. eh)
ich wollte eine kurze hilfe und nicht chatten.
ein hinweis auf lösungsquellen und *die*
lösung reichen völlig und würd dem mysql
projekt dienlicher sein.
(hat auch zuvor oben in den postings gekramt ...
dann kann ich jeztz auch mal abschweifen ;-)
also - vergebung & vielen dank für Eure bemühungen!!
viele Grüße, Jörg

Re: UPDATE-Probl. mit 2 Tabellen

am 05.08.2006 01:30:44 von Dirk Brosowski

j_wenke schrieb:

> ist nicht böse gemeint, es ist nur, dass
> manch "ausFührungen" mir hier so auf den zeiger
> geht, das ich leicht etwas übersensibel reagiere. :-(
> (die gruppe meide ich daher eigentl. eh)

aha .. hier wird hin und wieder übersensibel reagiert, wenn das
Handbuch, welches mit viel Mühe von Leute die es wahrscheinlich
auswendig können geschrieben wurde, nicht sorgsam gelesen wird.
Ausserdem wird von vielen, für diese Gruppe sehr wichtigen Leute, ein
Realname gewünscht. Ich sehe das so wie in einem sozialen Raum. Wenn ich
dort etwas möchte (nicht will) dann sind die Gepflogenheiten in diesem
Raum entscheidend für mein soziales Verhalten. Und ich werde niemals
daraus gehen, den Kaffee in der Hand und dann beim Tür zuschlagen noch
sagen "Eigentlich ist kann ich mit euch überhaupt nix anfangen, eure Art
geht mir auf den Zeiger. Ich wollte doch nur den Kaffee umsonst haben".

Soviel dazu.

> ich wollte eine kurze hilfe und nicht chatten.
> ein hinweis auf lösungsquellen und *die*
> lösung reichen völlig und würd dem mysql
> projekt dienlicher sein.

auch für die dritte Welt ist erkannt worden, dass Hilfe zur Selbsthilfe
viel mehr bringt.

Viele Grüße

Dirk

Re: UPDATE-Probl. mit 2 Tabellen

am 05.08.2006 23:25:47 von j_wenke

Hi ng,
kurz,
update "über mehrere Tabellen" funktioniert bei 3.23 so:

create table tmp (...);
insert into tmp (felder) select ...; #alles zusammengepackt
update tmp set c=id where ss = b;
alter table tmp drop COLUMN id;
rename table tmp to K;

Gruß, Jörg

ich stelle die "Mühen von Leuten" nicht
in Frage und keine Unterstellungen bitte.
MySql und ihre Arbeit sind toll!
- aber wer ließt das Buch schon ganz??
doch nur Profis oder dies schnell werden wollen.

realnames sind Zeitverschwendung, datenschutztechn. bedenkl., ...

Man kann doch Unbekannte nicht zwingen, auf eine
bestimmte Art zu lernen und Wissen zu verinnerlichen.

Dank für Anregung und Diskus.,

ciao

Re: UPDATE-Probl. mit 2 Tabellen

am 06.08.2006 11:49:51 von Dominik Echterbruch

j_wenke wrote:
>
> update "über mehrere Tabellen" funktioniert bei 3.23 so:
>
> create table tmp (...);
> insert into tmp (felder) select ...; #alles zusammengepackt
> update tmp set c=id where ss = b;
> alter table tmp drop COLUMN id;
> rename table tmp to K;

Vielen Dank, daß du die Lösung gepostet hast. Aber ein kleiner Fehler
ist mir noch aufgefallen. Genau genommen fehlt hier nämlich noch das
"DROP TABLE k;". Ich gehe jedenfalls davon aus, daß du in deinem SELECT
die Tabelle k verwendet hast.

> ich stelle die "Mühen von Leuten" nicht
> in Frage und keine Unterstellungen bitte.
> MySql und ihre Arbeit sind toll!
> - aber wer ließt das Buch schon ganz??
> doch nur Profis oder dies schnell werden wollen.

Genau genommen die Leute, die mit dem Produkt arbeiten wollen. Oder
würdest du es gutheißen, wenn man in einer Newsgroup Auto fahren lernen
könnte?

> realnames sind Zeitverschwendung, datenschutztechn. bedenkl., ...

Quatsch! Sie sind eine Form der Höflichkeit in deutschen Newsgroups (im
übrigen genauso wie einigermaßen korrekte Rechtschreibung; aber das ist
offensichtlich für dich auch nur Zeitverschwendung oder in irgendeiner
Form bedenklich). Außerdem bleibt dir immer noch die Möglichkeit, ein
Pseudonym zu verwenden.

> Man kann doch Unbekannte nicht zwingen, auf eine
> bestimmte Art zu lernen und Wissen zu verinnerlichen.

Nein, kann man nicht. Aber dann akzeptiere bitte auch, daß du
entsprechende Antworten bekommst und spiel nicht die beleidigte Leberwurst.


Grüße,
Dominik
--
Norbert Melzer in d.c.d.mysql:
F: Wie verstehe ich diese FAQ am besten?
A: Studieren Sie Datanbank-Design und lesen Sie anschliessend alles nochmal

Re: UPDATE-Probl. mit 2 Tabellen

am 06.08.2006 16:01:37 von j_wenke

Hi Dominik
> ...
> die Tabelle k verwendet hast.
sorry - war bischen undeutlich. Also:

In 'nn' sollte die Spalte nn.c
mit Zahlenwerten aus 'gat_cc' (id) gefüllt
werden. Dabei stimmen in beiden Tabellen
die Text-Spalten gat_cc.ss und nn.b überein.
Dazu wird in Tabelle 'tmp' *alles* zusammengeführt
und *darin* das update gemacht.
Nicht mehr benötigte Spalten löschen,
Tabelle mit richtigem Namen versehen ('K'),
Arbeitstabelle löschen und fertig.

create table tmp (
id char(5) NOT NULL,
ss char(30), ... b, ... c ...);
insert into tmp (id,ss,b,c)
select id,ss,b,c
from gat_cc,nn
where ss = b;

update tmp set c = id where ss = b;

alter table tmp drop COLUMN ss;
alter table tmp drop COLUMN id;
...
rename table tmp to K;
drop table tmp;

Gruß, Jörg

Re: UPDATE-Probl. mit 2 Tabellen

am 06.08.2006 17:53:32 von Dirk Brosowski

j_wenke schrieb:
> ich stelle die "Mühen von Leuten" nicht
> in Frage und keine Unterstellungen bitte.
> MySql und ihre Arbeit sind toll!
> - aber wer ließt das Buch schon ganz??
> doch nur Profis oder dies schnell werden wollen.

Nicht schnell verwenden, sondern richtig. Und einen Vorlesekurs habe ich
hier noch nicht gesehen. Vorleser werden und sollten auch bezahlt werden.

> Man kann doch Unbekannte nicht zwingen, auf eine
> bestimmte Art zu lernen und Wissen zu verinnerlichen.

Du wirst insbesondere nicht gezwungen hier überhaupt eine Frage zu
stellen. Hier geben dir andere Menschen kostenlos Hilfe. Diese haben
i.allg. nichts mit MySQL AB zu tun. Und wenn du von denen etwas
möchtest, dann musst du auf die eingehen und deren Wünsche akzeptieren.

Grüße

Dirk