| Author |
Message |
reini666
knows MySQLDumper

Joined: 11 Jan 2012
Posts: 3
Location: Deutschland

|
Posted:
2012-01-11, 15:01 Update tabellenübergreifend |
  |
Hallo zusammen,
bin neu hier und folgendes Problem hat mich hergetrieben.
Ich versuche das Feld "products_keywords" aus Tabelle "products_description" mit dem Wert
aus dem Feld "products_model" aus Tabelle "products" mit dem Befehl Update zu füllen.
Nach langer Recherche bin ich hier stehen geblieben:
UPDATE products_description SET products_keywords=(SELECT products_model from products where products.products_model=products_description.products_keywords)
Das liefert keine Fehlermeldung, aber die Werte werden nicht übernommen.
Ich hoffe ihr könnt mir weiterhelfen.
Viele Grüße
Thomas
|
|
  |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
|
| |
 |
Jens_K
Moderator

Age: 37
Joined: 04 Sep 2007
Posts: 1710
Location: Nähe Bielefeld

|
Posted:
2012-01-11, 18:16 (No subject) |
  |
Hallo Thomas!
Erstmal verschiebe ich das hier in die Allgemeine Spielwiese, da es ja nichts mit Fehlern oder Problemen des MySQLDumpers zu tun hat ...
Dann zu Deiner Fragestellung.
Dass da keine Fehlermeldung kommt, kan ich nicht so ganz nachvollziehen
Die Unterabfrage soll als Ergebnis den Wert aus "products_model" liefern. Allerdings sind die beiden Tabellen "products" und "products_descriptions" nicht miteinander verknüpft.
Jetzt mal angenommen, die Verknüpfung wird über die beiden Felder "products_model" und "products_keywords" gemacht, also z.B. so
SELECT T0.products_model
FROM products T0
INNER JOIN products_descriptions T1 ON T0.products_model = T1.products_keywords
Dann kommt da eine Liste aller products_model Werte raus, die man nicht einem einzelnen Wert in der zu aktualisierenden Tabelle zuordnen kann.
Ganz davon abgesehen klappt das auch nur, wenn in beiden Feldern bereits das gleiche drinstehtt.
Was Du also brauchst, ist ein Schlüsselbegriff, der in beiden Tabellen vorhanden ist, z.B. eine products_id.
Dann funktioniert z.B. folgendes:
UPDATE products_descriptions
SET products_keywords =
(
SELECT products_model
FROM products
WHERE products.products_id = products_descriptions.products_id
)
Für welches Fach ist die Hausaufgabe denn?
_________________ It's like math-camp all over again ... not ... that i've ever been to math-camp!
mein Blog
|
|
   |
 |
reini666
knows MySQLDumper

Joined: 11 Jan 2012
Posts: 3
Location: Deutschland

|
Posted:
2012-01-11, 18:54 (No subject) |
  |
Hallo Jens,
vielen Dank für die rasche Antwort und sorry für das falsch gewählte Thema!
Ich hab keinen Schimmer von MySql, aber nun weiß ich wofür where da ist, für den Bezug.
Hätte ich das gewusst, hätte ich mir den Fehler denken können.
In der Tat gibt es die products_id und damit hat es auch funktioniert.
Die Hausaufgabe ist eine neue Schnittstelle für den xt:C M und dafür nötige Anpassungen.
Viele Grüße
Thomas
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2012-01-11, 20:49 (No subject) |
  |
Warum sollte man die Keywords doppelt speichern? Einmal beim Model und dann nochmal beim konkreten Produkt?
Da die Information bereits vorhanden ist, kann man die Keywords auch beim Model lassen und beim Abfragen über einen entsprechenden JOIN ermitteln.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
reini666
knows MySQLDumper

Joined: 11 Jan 2012
Posts: 3
Location: Deutschland

|
Posted:
2012-01-13, 17:31 (No subject) |
  |
Hallo Developer,
um den Magnalister nutzen zu können muss ich statt unserer eigenen Artikelnummer die Afterbuy ID, die auch gleichzeitig die Amazon SKU ist, als Artikelnummer übernehmen. Da ich und andere aber nach unserer eigenen Artikelnummer Suchen, werde ich die einfach als Keyword übernehmen.
Viele Grüße
Thomas
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2012-01-13, 20:01 (No subject) |
  |
Ah, verstehe.
Dann bist Du entschuldigt.
Viel Erfolg noch.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
|
|
CrackerTracker © 2004 - 2012 CBACK.de
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours
phpBB SEO
|