MYSQL Update über 2 Tabellen

Mitglied: ottscho

ottscho (Level 2) - Jetzt verbinden

05.10.2011 um 11:01 Uhr, 15748 Aufrufe, 9 Kommentare

Hey,

ich habe zwei Tabellen, welche ich gleichzeitig Updaten möchte, falls möglich.

Tabelle1:
Tabelle2:
Beziehung: `s_articles_details`.articleID=`s_articles`.id

Nun möchte das Feld `s_articles_details`.instock und `s_articles`.active auf 0 setzen, wenn das Datum von `s_articles`.changetime < '2011-10-05 10:32:58' ist.

Mein Versuch:
Bei dieser WHERE Klausel werden aber keine Datensätze selektiert.

Geht das überhaupt in einem Wisch?

Danke
Mitglied: thaenhusen
05.10.2011 um 11:08 Uhr
Moin.

HTH
MK
Bitte warten ..
Mitglied: ottscho
05.10.2011 um 11:15 Uhr
Danke dir.

Wenn ich das FROM entferne geht die Syntax.
Aber das Ergebnis ist das Gleiche:

Null betroffene Datensätze.

Aber es gib in der DB `s_articles` tausende, welche in changetime < '2011-10-05 10:32:58' sind.
Bitte warten ..
Mitglied: thaenhusen
05.10.2011 um 11:41 Uhr
Moin.

Sorry. Versuchs mal so.

PS.: Sonst schick mal einen kurzen Dump der Tabellen...

HTH
MK
Bitte warten ..
Mitglied: ottscho
05.10.2011 um 11:53 Uhr
mhhh, hier habe ich bei deinem Statement nun einen Fehler:
Fehler
SQL-Befehl:
UPDATE `s_articles` INNER JOIN `s_articles_details` ON `s_articles_details`.articleID = `s_articles`.id WHERE `s_articles`.changetime < '2011-10-05 10:32:58' SET `s_articles`.active =0,
`s_articles_details`.instock =0

MySQL meldet: Dokumentation
#1064 - 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 'where `s_articles`.changetime &lt;'2011-10-05 10:32:58'
SET `s_articles`.active =' at line 3

Das habe ich noch versucht:
Aber gleiches Ergebnis. Statement läuft, aber 0 betroffene Datensätze.

SQL Dump so direkt kann ich dir leider nicht schicken. Kundendaten.
Aber ich kann dir einen Export von beiden Tabellen, jeweils die ersten 2-3 Zeilen zukommen lassen.
Bitte warten ..
Mitglied: ottscho
05.10.2011 um 13:04 Uhr
Hab dir ne PN geschickt ;)

Neuster Versuch:
Gleiches Ergebnis. 0 Datensätze betroffen.
Mache ich nur die Unterabfrage
select id from `s_articles` where changetime < '2011-10-05 10:32:58'
oder
select count(*) from `s_articles` where changetime < '2011-10-05 10:32:58'
erhalte ich aber 44264 Datensätze.


Ich blicks echt nicht!

Mache ich:
erhalte ich einen Datensatz zurück,

mache ich aber:
bekomme ich wieder 0 Datensätze zurück
Bitte warten ..
Mitglied: thaenhusen
05.10.2011 um 13:28 Uhr
Moin.

Das funktioniert jetzt. ID 1 und 4 in den Testdaten werden damit geupdated.

Meine Syntax kam von einem anderen SQL System. Sorry.

HTH
MK
Bitte warten ..
Mitglied: ottscho
05.10.2011 um 13:37 Uhr
ich muss idich enttäusche, Geht nicht.
Aber ich habe eine Ahnung, woran es liegt. Es muss am WHERE liegen im Bezug auf die Formatierung des Datum/Uhrzeit.

Ich habe das Ganze mal auf eine Tabelle beschränkt.
Select geht aber Update nicht!

Das ergibt wieder tausende Treffer.

Das Update allerdings ergibt wieder NULL:
Bitte warten ..
Mitglied: thaenhusen
05.10.2011 um 14:46 Uhr
Moin.

Also bei mir mit Deinem Dump funktioniert das.
Dann hast Du irgendwas mit dem Datetime auf Deinem Server verfrimelt.

Ich habe Deine Dumps in einer Tmp-DB importiert und dann funktioniert das...

Ich nutze MySQL 5.0.51a.

HTH
MK
Bitte warten ..
Mitglied: ottscho
05.10.2011 um 15:07 Uhr
Hey, danke dir für die tritte :) face-smile
Es geht. War mein fehler. Ich sitze einfach schon zu lange vor der Kiste.

Wenn ein Spalte schon den UPDATE Wert beinhaltet, wird diese nicht mehr upgedatet. Da alle meine Datensätze schon die gewünschten Werte hatten, wurde nichts durchgeführt :( face-sad

Das war schon alles...
Bitte warten ..
Heiß diskutierte Inhalte
Hyper-V
ESXi free oder Windows Hyper-V Server 2019
lukas0209Vor 1 TagAllgemeinHyper-V27 Kommentare

Hallo, ich brauche ca. 2 oder 3 Windows 10 virtualisiert um Dinge zu testen. Ist es dafür sinnvoller ein Windows Hyper-V Server 2019 (kostenlos) ...

Off Topic
Nach 700 Tagen adwcleaner
altmetallerVor 1 TagAllgemeinOff Topic8 Kommentare

Hallo, ich habe in meinem Netzwerk diverse Maßnahmen, um nicht nur Angriffe, sondern auch - sagen wir mal - unerwünschte Datenabflüsse und Tracking zu ...

Exchange Server
0-day Exploit Chain für Exchange Server - Patches verfügbar
kgbornVor 1 TagInformationExchange Server6 Kommentare

Zur Info: Microsoft warnt vor einer Exploit-Chain, bei der vier 0-day-Schwachstellen für gezielte Angriffe auf Exchange per Outlook Web App kombiniert werden (eine chines. ...

Netzwerkgrundlagen
DS-Lite Verständnisfrage Wireguard
gelöst fnbaluVor 1 TagFrageNetzwerkgrundlagen22 Kommentare

Hallo zusammen, bisher läuft bei mir alles klassisch. pfSense mit DDNS und ich verbinde mich mit OpenVPN in das Heimnetz und erspare mir so ...

Windows 10
Windows 10 schickt lokale Anfragen an das Gateway - was tun?
gelöst runthegaunzVor 21 StundenFrageWindows 1015 Kommentare

Hallo! Ich bin vor ein paar Tagen wieder von Linux auf Windows umgestiegen. Ich hab die Windows 10 Version 20H2 installiert, wurde von Windows ...

Switche und Hubs
23 Cisco Switch einrichten - Wie am einfachsten?
gelöst Freak-On-SiliconVor 1 TagFrageSwitche und Hubs18 Kommentare

Hallo; Ich habe hier 4stk Cisco SX350X-24 9Stk Cisco SG350X-48P 10Stk Cisco SG350X-48 Diese werden aufgeteilt auf 9 Racks, und ersetzen alte HP Switches. ...

HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 5 StundenFrageHTML16 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

Exchange Server
Aktuelle Exchange Sicherheitslücke
jojo0411Vor 1 TagAllgemeinExchange Server11 Kommentare

Hallo Leute, Momentan gibt es da wieder einmal ein schönes neues Thema. Sehe ich das richtig das ich mit Exchange 2016 und CU 19 ...