Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verknüpfen von Tabellen mit Fremdschlüsseln

Angenommen, Sie möchten einfach alles zusammenfügen, wie es die Schlüssel vorschlagen ...

SELECT *
FROM table1
INNER JOIN table3 on table3.table1ID = table1.table1ID
INNER JOIN MEM_INSTR on MEM_INSTR.table2ID = table3.table2ID

Aber nehmen wir an, Sie haben dieses Szenario.

CREATE TABLE Table1 (
    Table1ID NUMBER, 
    Generation NUMBER, 
    ... 
);

CREATE TABLE Table2 (
    Table2ID NUMBER, 
    Table1ID NUMBER, 
    Table1Generation NUMBER, 
    ...
);

Nehmen wir der Argumentation halber an, dass Table1 mehrere Datensätze mit derselben Table1ID haben kann und Generation als sekundärer Schlüssel verwendet wird. Und Sie müssen einen Table2-Datensatz mit der richtigen Single verbinden Tabelle1-Datensatz. Sie können ON erweitern -Klausel genauso wie Sie ein WHERE erweitern würden Klausel.

SELECT *
FROM table1 t1
INNER JOIN table2 t2 
    ON t2.table1id = t1.table1id 
    AND t2.table1generation = t1.generation