Hallo,
ich weiß nicht weshalb, aber irgendwie komme ich nicht auf die Lösung:
[TABLE='width: 500']
[tr][/tr]
[/TABLE]
[TABLE='width: 454']
[TD='width: 446'][TABLE='width: 500']
ztab1
sp zu at
11 A A 1
12 G A 1
13 G D 1
14 E F 1
15 G 2
16 A 2
ztab2
sp sx io
11 510 0
12 520 0
13 530 0
14 540 0
15 550 0
16 560 0
13 531 0
ztab2 (Ergebnis)
sp sx io
11 510 560
12 520 550
13 530 550
14 540 0
15 550 0
16 560 0
[/TABLE]
[/TD]
[/TABLE]
die Datensätze 12, 13 sollen in der Spalte ztab2.io den Wert 550 erhalten und Datensatz 11 den Wert 560. Angelpunkte sind in ztab1.zu (sp: 15,16 - sozusagen Vornamen-strings).
Muss man da ggf. mit ner temporären Tabelle arbeiten?
ein paar Sachen habe ich probiert, aber ... immer "dicht" daneben:
UPDATE ztab2 SET io = ( SELECT ztab2.sx
FROM ztab1
WHERE SUBSTRING_INDEX( ztab1.zu, ' ', 1 ) = 'G'
AND ztab1.sp = ztab2.sp ) // 12, 13, 15 - aber nur alle 'G' gleichgesetzt: sx==io
UPDATE ztab2 SET io = (
SELECT ztab2.sx
FROM ztab1 as eins
LEFT JOIN ztab1 as zwei ON (zwei.sp = eins.sp)
WHERE eins.zu = 'G ') // alle Datensätze betroffen (wenn vorher auf 0 gesetzt) & gleichgesetzt
UPDATE ztab2 SET io = (
SELECT ztab2.sx
FROM ztab1, ztab2 AS zwei
WHERE SUBSTRING_INDEX(ztab1.zu, ' ', 1) = 'G'
AND ztab1.sp = zwei.sp) // error ztab2 gehört nicht hin. Probl. mit Verbindung
die Tabellen haben einige Tausend Datensätze.
Markus