MYSQL:Alle Datensätze finden, deren PK nicht in einem anderen Datensatz ist

Dieses Thema MYSQL:Alle Datensätze finden, deren PK nicht in einem anderen Datensatz ist im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von HendrikO, 9. Nov. 2006.

Thema: MYSQL:Alle Datensätze finden, deren PK nicht in einem anderen Datensatz ist Hallo beisammen, ich hab eine MYSQL-Datenbank erstellt in der es mehrere Tabellen gibt. Ziel des Ganzen ist eine...

  1. Hallo beisammen,

    ich hab eine MYSQL-Datenbank erstellt in der es mehrere Tabellen gibt. Ziel des Ganzen ist eine Adressverwaltung. Ich habe jetzt eine Tabelle Adresse in der der Hauptdatensatz drin ist und eine Tabelle Ort. Einem DS in Tabelle Adresse ist eine Spalte für den Foreignkey zur Tabelle Ort.

    Ich möchte jetzt alle Datensätze aus der Tabelle Ort in PHP aufgelistet bekommen, deren ID nicht als Foreignkey in einem Datensatz der Tabelle Adresse enthalten sind. Also alle nicht benutzten Orte sozusagen. Mein Ansatz war:

    Code:
    <?
    $sql=SELECT .ORT..* 
    		FROM .ORT.
    		LEFT JOIN .BEGLEITER. ON .ORT..ID = .BEGLEITER..ORT_fk;
    $result= mysql_query($sql) or die(mysql_error());
    $all=mysql_fetch_assoc($result);
    print_r($all);
    ?>
    Diese Abfrage gibt mir jedoch immer nur einen Datensatz aus (Der allerdings wirklich keinen Gegenüber in Tabelle Adresse hat ;)).

    Wahrscheinlich ist die Lösung ganz einfach, ich komm nur nicht drauf.

    Bitte um Hilfe.
     
  2. Code:
    <?php
    $sql =->SELECT t1.* FROM tbl_orte t1 LEFT JOIN tbl_begleiter t2 ON t1.id = t2.ort_fk WHERE t2.ort_fk IS NULL';
    ?>
    
     
  3. Hmm, er schmeißt mir das selbe Ergebnis raus. Also nur ein Datensatz, obwohl es min. 20 Ortsdatensätze gibt, die nicht verwendet werden. Muss ich das in einer Schleife verpacken? Von der Logik her, müssten doch alle Datensätze ausgegeben werden, deren ID nicht in der Tabelle Begleiter stehen oder? Danke für den Ansatz. :)
     
  4. OK, dann halt im ganzen ;)

    Code:
    <?php
    mysql_connect(localhost,xxx,xxx);
    mysql_select_db(test_db);
    
    $sql =->SELECT t1.* FROM tbl_orte t1 LEFT JOIN tbl_begleiter t2 ON t1.id = t2.ort_fk WHERE t2.ort_fk IS NULL';
    $resID = mysql_query($sql);
    echo <h2>Orte die nicht in Tabelle Begleiter verwendet wurden</h2>;
    while($row = mysql_fetch_object($resID)) {
    	echo $row->id. - .$row->ort.<br />;
    }
    ?>
    
    BTW:

    mit mysql_fetch_assoc holst du eh nur einen Datensatz aus der Ergebnismenge ;)

    => http://de.php.net/manual/de/function.mysql-fetch-assoc.php
     
  5. Juchuu der wars . :D
    Das mit dem mysql_fetch_objects kannt ich noch nicht. Gleich wieder was gelernt  mml. Besten Dank. Ich mach dann dem Thema mal das Licht aus 
     
Die Seite wird geladen...

MYSQL:Alle Datensätze finden, deren PK nicht in einem anderen Datensatz ist - Ähnliche Themen

Forum Datum
PHP - XML | Datensätze hinzufügen und editieren Webentwicklung, Hosting & Programmierung 18. Feb. 2011
Datensätze mit OCR nach Excel? Windows XP Forum 11. Apr. 2009
2 Spalten vergleichen, gleiche Datensätze in Spalte 2 farblich hervorheben Windows XP Forum 7. Dez. 2006
Datensätze fortlaufend in einem Datensatzblatt Windows XP Forum 23. Nov. 2006
Access - Datensätze zählen Microsoft Office Suite 8. März 2006