Sql Abfrage bei 2 Tupel in unterschiedlichen Tabellen mit selber id

  • Themenstarter Themenstarter hassoexterntoday
  • Beginndatum Beginndatum
H

hassoexterntoday

Hallo,

ich hab ne frage bei der geht es bei der Inserierung eines Inserats. Die Bilder eines Inserats werden in der Tabelle usergallery_images eingefügt und die Daten eines Inserats werden entweder bei der Tabelle inserat_house, inserat_kiosk, nserat_land.ordner usw. eingefügt.

Die Inserierung erfolgt jedoch so das man Bilder hochladen kann ohne ein Inserat abschließend einzufügen. Das heisst das in der Tabelle Bilder dann ein Tuppel ist zudem kein zugehöriger Tupel in der Tabelle inserat_house steht.

In beiden Tabellen gibts wenn ein Inserat abschließend eingefügt wurde ein Attribut Namens ordner das die Selbe id hat.


Ich hab mir das so gedacht, das ich alle Tupel aus allen Tabellen auslese und schau welches Tupel nicht in der anderen Tabelle ist. Die Version funktioniert jedochnicht .

Code:
<? 

// Löschung von Bildern die hochgeladen werden, bei dem jedoch nicht der Tupel bei inserat_house, inserat_kiosk eingefügt wird...keine abgeschlossene Inserierungen!


/* Schritt 1 -> ID von Bild auslesen von Tabelle usergallery_images welche ordner nicht in tabelle nserat_land.ordner , inserat_kiosk.ordner,  inserat_haus.ordner und datum älter als 1 TAG */

require_once('dataBaseConnection.php');


		
	  $SQL = "SELECT * FROM usergallery_images, inserat_garage,  
	                        nserat_land, inserat_haus, inserat_gasstation, inserat_kiosk,                            inserat_halle
	  WHERE 
	  usergallery_images.ordner != inserat_garage.ordner OR 
	  usergallery_images.ordner != nserat_land.ordner OR 
	  usergallery_images.ordner != inserat_haus.ordner OR 
	  usergallery_images.ordner != inserat_gasstation.ordner OR 
	  usergallery_images.ordner != inserat_kiosk.ordner OR 
	  usergallery_images.ordner != inserat_halle.ordner OR 
	  uploadzeit < NOW() - INTERVAL 60 MINUTE";
	  
	  //echo $SQL; 
	  $REC = mysql_query($SQL) or die('<pre>'.htmlspecialchars($querystr."\n".mysql_error()).'</pre>');
	  $RECrows = mysql_num_rows($REC);
			   
   
      while($Datensatz = mysql_fetch_assoc($REC)){
	   
		$record['path_thumb'] = $Datensatz['path_thumb'];
		$record['ID'] = $Datensatz['ID'];

       $DATAAA['SEARCH'][] = $record;
	    
  }

if ($RECrows > 0 ) foreach($DATAAA['SEARCH'] as $searchEntry): 

$bild_thumbs = $searchEntry['path_thumb'];
$ID = $searchEntry['ID'];
echo $ID;
echo $bild_thumbs;
//unlink("photos/".$bild_thumbs); 
//unlink("thumbs/".$bild_thumbs); 

endforeach; 



?>


Gruß
 
DU kannst einfach beide mit einem LEFT JOIN verbinden und dann diejenigen Auswählen ide in der Zweiten Tabelle keinen Eintrag haben.
SQL:
SELECT t1.*
FROM
    table1 AS t1
    LEFT JOIN table2 AS t2
        ON t1.id = t2.id
WHERE
    ISNULL(t2.id)
 
Zuletzt bearbeitet von einem Moderator:
Zurück