Mysql
 sql >> Base de données >  >> RDS >> Mysql

Joindre des tables avec des clés étrangères

En supposant que vous vouliez simplement tout joindre comme le suggèrent les clés...

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

Mais disons que vous avez ce scénario.

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

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

Disons pour l'amour de l'argument que Table1 peut avoir plusieurs enregistrements avec le même Table1ID, et Generation est utilisé comme clé secondaire. Et vous devez joindre un enregistrement Table2 au single correct Enregistrement du tableau 1. Vous pouvez développer le ON clause de la même manière que vous développeriez un WHERE clause.

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