Fremdschlüssel, JOIN und Co. - Zugehörige Datensätze erkennen und laden

  • Hallo,

    Wenn ich zwei Tabellen erstelle und der Primärschlüssel der ersten Tabelle gleichzeitig der Fremdschlüssel der zweiten ist habe ich sie verbunden.

    PHPMyAdmin bietet mir nun bei Tabelle 2 unter "Einfügen" bei der Fremdschlüssel-Spalte ein SELECT - Inputfeld an mit allen Spalten der ersten Tabelle als Auswahl-Option.

    Wie macht PHPMyAdmin das? Gibt es eine SELECT-Syntax im Sinne von

    SQL
    SELECT ALL POSSIBLE VALUES FOR `table2.`.`column3`;

    oder macht PHPMyAdmin das mit JOIN? Hier würde mich interessieren, wie phpmyadmin die Spalte als Fremdschlüssel-Spalte erkennt und dann die zugehörigen Tabellenspalten aus Tabelle 1 laden kann? Versteht ihr was ich meine; was ich will?

    Vielen Dank im Voraus! :)

  • Ja, aber wie erkennt PHPMyAdmin denn automatisch, dass es sich um einen Fremdschlüssel handelt?

    Ich als Programmierer weiß das ja, aber ich dachte eben an einen automatisieren "intelligenten" Ablauf

  • Du meinst das hier:html-seminar.de/woltlab/attachment/531/
    Das läuft intern in phpMyadmin. Da wird einfach ein select auf die tabelle mit dem schlüssel gehen und all valid möglichen key anbieten.
    EDIT:
    "und all valid möglichen key anbieten."
    -.- omg, das lass ich mal so stehen :D

    Edit2:
    zur query:
    Beim erstellen des Fremdschlüssels gibst du ja an, auf welche (reference) Tabelle/Column er sich bezieht.

    SQL
    ADD CONSTRAINT `foreignkey_name` -- nur der name
      FOREIGN KEY (`userid`) -- die column in der aktuellen tabelle
      REFERENCES `dbname`.`tbluser` (`id`) -- die referenz 
      ON UPDATE CASCADE;

    phpMyAdmin wird dann einfach ein Select schießen

    SQL
    SELECT `id` FROM `dbname`.`tbluser`

    Einmal editiert, zuletzt von cottton (4. März 2014 um 23:57)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!