Hilfestellung für sql-Befehl

Hallo bin leider nicht so fit mit sql und bei mehreren Tabellen hört es schon auf. Also:
Ich möchte “manufacturers_name” aus der Tabelle “manufacturers” in das Feld “manufacturers_meta_title” in der Tabelle “manufacturers_info” kopieren. Die beiden Tabellen sind über ein Feld “manufacturers_id” verknüpft.
Kann mir jemand auf die Sprünge helfen?

Nein. Du willst das dort nicht reinkopieren. Du willst maximal in einer Abfrage das passend sehen.

Die beiden Tabellen sind über ein Feld “manufacturers_id” verknüpft.

Eben. Deswegen macht man das ja. Nennt sich Normalisierung.

Kann mir jemand auf die Sprünge helfen?

Da ich Deine Tabellen nur erraten kann, hab ich das erraten:

test=*# select * from manufacturers;
 id |  name
----+--------
  1 | Name 1
  2 | Name 2
(2 rows)

test=*# select * from manufacturers_meta_title;
 id | manufacturers_id |  bla
----+------------------+-------
  1 |                1 | bla 1
(1 row)

test=*# select b.name, a.bla from manufacturers_meta_title a left join manufacturers b on (a.manufacturers_id=b.id);
  name  |  bla
--------+-------
 Name 1 | bla 1
(1 row)

Allgemein: Du suchst einen JOIN zwischen den Tabellen.

Hint: in meiner del.icio.us - Linksammling könntest Du einiges dazu finden…


Andreas

Danke für die schnelle Antwort - ich habe ne weile darüber nachgedacht, aber komme wirklich nicht dahinter :astonished:

Also
erste Tabelle: manufacturers
Felder: manufacturers_name und manufacturers_id
zweite Tabelle: manufacturers_info
Felder: manufacturers_meta_title und manufacturers_id

Die Tabellen sind über die Felder manufacturers_id verknüpft.

Ich hätte gern den Inhalt von Feld manufacturers_name in das Feld manufacturers_meta_title eingefügt.

Wenn Du eh den Inhalt der einen Tabelle in die andere einfügen willst, dann macht die Verknüpfung über manufacturers_id irknwie keinen Sinn, oder?

Andreas

braucht man denn dieses Feld nicht, damit der richtige manufacturer dann auch den entsprechenden meta_title hat?

Was exakt willst Du denn? 2 identische Tabellen?

Andreas

Ich möchte, dass der Inhalt der Spalte manufacturers_name der Tabelle manufacturers in die Spalte manufacturers_meta_title_der Tabelle manufacturers_info eingefügt wird.
Wie ich den Inhalt einer Spalte in eine andere Spalte DERSELBEN Tabelle “update” weiss ich, aber wenn es sich um verschiedene Tabellen handelt, blick ich nicht durch.



test=*# select * from manufacturers_meta_title;
 id | manufacturers_id |  bla
----+------------------+--------
  1 |                1 | Name 1
(1 row)

test=*# rollback;
ROLLBACK
test=# select * from manufacturers;
 id |  name
----+--------
  1 | Name 1
  2 | Name 2
(2 rows)

test=*# select * from manufacturers_meta_title;
 id | manufacturers_id |  bla
----+------------------+-------
  1 |                1 | bla 1
(1 row)

test=*# update manufacturers_meta_title set bla = manufacturers.name from manufacturers where manufacturers_meta_title.manufacturers_id=manufacturers.id;
UPDATE 1
test=*# select * from manufacturers_meta_title;
 id | manufacturers_id |  bla
----+------------------+--------
  1 |                1 | Name 1
(1 row)

Andreas

sorry, war mal weg …
Soll ich den ganzen Code jetzt einfach so ausführen ?

Du sollst SQL lernen.

Andreas