Daten aus einer Tabelle mit Daten aus anderer Tabelle ableichen und ...

michaelderweise

Benutzer
Beiträge
5
Hallo,

ich hoffe, dass ich hier mit meinem Anliegen richtig bin.

Ich habe folgendes Anliegen:

Ich habe aus einer Tabelle, wo Artikel bestimmten Kategorien zugewiesen sind, alle Artikel einer Kategorie anzeigen lassen. Das klappt natürlich.
Dann habe ich eine zweite Tabelle wo diese Artikel ebenfalls aufgeführt sind, aber keiner Kategorie zugewiesen sind, weil es in dieser Tabelle kein Feld "Kategorie" gibt. Nun habe ich schon mal in dieser Tabelle das Feld "Kategorie" eingefügt.

Nun kommt die eigentliche Aufgabe:

Ich möchte alle Artikel, die ich in der Tabelle 1 schon selektiert habe, in Tabelle 2 suchen lassen und die in Tabelle 1 zugeordnete Kategorie nun auch in dieser Tabelle hinterlegen.



Kann mir einer einen Hinweis geben, wie ich das machen kann ?

Vielen Dank
 
Werbung:
Code:
test=*# select * from t1;
 artikel | kat
---------+-----
  1 |  10
  2 |  20
  3 |  20
(3 rows)

test=*# select * from t2;
 artikel
---------
  1
  2
  3
(3 rows)

test=*# alter table t2 add column kat int;
ALTER TABLE
test=*# update t2 set kat=t1.kat from t1 where t1.artikel=t2.artikel;
UPDATE 3
test=*# select * from t2;
 artikel | kat
---------+-----
  1 |  10
  2 |  20
  3 |  20
(3 rows)

Einfach, oder?
 
Hmm, danke für die Antwort,
da ich ja ein Anfänger bin bitte ich um Nachsicht.

Ich drösel hier mal das ganze mit realen Namen auf:

1.
SELECT * FROM `s_articles_categories` WHERE categoryID ='62'

funktioniert

2. Schritt von dir brauch ich glaube ich nicht.

2. Schritt von mir:

ALTER TABLEs_articles_prices ADD CatecoryID int(11);

funktioniert

3. Schritt:

update s_articles_prices set CategoryID=s_articles_categories.categoryID from s_articles_categories where s_articles_categories.articleID=s_articles_prices.articleID;

gibt eine Fehlermeldung.

Der sinn des 3. Schrittes: Die Tabelle s_articles_prices soll verändert werden und zwar so: suche in der Tabelle s_articles_categories , in der nach Schritt eins eine Vorauswahl getroffen wurde nach einer Artikelnummer, schau, ob diese Nummer auch in s_articles_prices vorhanden ist und schreibe dann in s_articles_prices in das Feld CategoryID den Wert von CategoryID aus Tabelle s_articles_categories. Das ganze soll wie gesagt eingeschränkt werden nach der Vorauswahl die in Schritt 1 vorgenommen wurde
 
Zuletzt bearbeitet:
Auch ein 'Guru' kann aus der simplen Aussage, daß es da eine Fehlermeldung gab, nicht die Ursache oder gar die Lösung erraten. Also ich zumindest nicht.
 
Ahso:

hier die Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from s_articles_categories where s_articles_categories.articleID=s_articles_pric' at line 1
 
Werbung:
Danke ich hab es jetzt so gelöst:

ALTER TABLE s_articles_prices ADD CategoryID int(11);
UPDATE s_articles_prices, s_articles_categories SET s_articles_prices.categoryID=s_articles_categories.categoryID WHERE s_articles_prices.articleID=s_articles_categories.articleID AND s_articles_categories.categoryID=62;
UPDATE s_articles_prices SET pseudoprice = price, price = price/2 WHERE categoryID= 62;
ALTER TABLE s_articles_prices DROP CategoryID;
 
Zurück
Oben