heinetz: MySQL Statement

Beitrag lesen

naja, dass die Werte nicht überschrieben werden ;)

ich hatte die Logik ja urspünglich in PHP abgebildet.
Daraus wird's klar:

  
$mysqlStatm = "  
SELECT *  
FROM `content`  
WHERE `content`.`id`= '3'";  
$mysqlReslt  = mysql_query($mysqlStatm);  
$mysqlResltA =  mysql_fetch_assoc($mysqlReslt);  
  
// Mein $mysqlResltA ist nun ein eindimensionales assoziatives  
// Array, in dem sämtliche Werte aus dem Datensatz mit der ID  
// 3 stehen. Auf diese Werte greife ich so zu:  
  
echo $mysqlResltA['uebrschrift'];  
// Ausgabe: header C  
  
echo $mysqlResltA['r_id'];  
// Ausgabe: 2  

Das Feld 'r_id' steht für Redundanz. Der Datensatz mit der ID 3
soll mit dem Datenatz mit der ID 2 so verknüpft werden, dass
bestimmte Werte des Datensatzes 3 mit Werten des Datensatzes 2
überschrieben werden:

  
if ($mysqlResltA['r_id']!=0)  
  {  
   $mysqlStatm = "  
   SELECT  
   `uebrschrift`,  
   `text`  
   FROM `content`  
   WHERE `content`.`id`= ".$mysqlResltA['r_id'];  
   mysql_select_db($db1Name);  
   $mysqlReslt = mysql_query($mysqlStatm);  
   $mysqlResltA2 = mysql_fetch_assoc($mysqlReslt);  
   for (reset($mysqlResltA2);$key=key($mysqlResltA2);next($mysqlResltA2))  
      {  
       $mysqlResltA[$key] = $mysqlResltA2[$key];  
      }  
  }  
  
// In meinem $mysqlResltA sind nun die Werte für `uebrschrift`  
// und `text` überschieben worden  
  
echo $mysqlResltA['uebrschrift'];  
// Ausgabe: header b  

Klar ?

Dieses optionale Überschreiben von Feldwerten habe ich versucht
mit dem JOIN abzubilden. Dummerweise ist es dann aber garnicht
optional ;(
Das war mein Denkfehler. Klar. Ich kann mir aber vorstellen, dass
es in MySQL etwas gibt, dass ich nicht kenne oder auf das ich
einfach nicht komme, dass sich hervorragend eignet, um meine PHP-
Kontruktion zu erstzen. Vielleicht lässt sich da z.B. mit isnull
() etwas machen. Mir fehlt die Erfahrung mit MySQL und daher auch
der zündenede Gedanke ...

besten dank für Tipps und

beste gruesse,
heinetz