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
    1. 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! :)

  • Du meinst das hier:select.png
    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
    1. ADD CONSTRAINT `foreignkey_name` -- nur der name
    2. FOREIGN KEY (`userid`) -- die column in der aktuellen tabelle
    3. REFERENCES `dbname`.`tbluser` (`id`) -- die referenz
    4. ON UPDATE CASCADE;


    phpMyAdmin wird dann einfach ein Select schießen

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