sql >> Database >  >> RDS >> Mysql

Tabellen samenvoegen met Foreign Keys

Ervan uitgaande dat je alles gewoon wilt samenvoegen zoals de sleutels suggereren...

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

Maar laten we zeggen dat je dit scenario hebt.

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

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

Laten we terwille van het argument zeggen dat Tabel1 meerdere records kan hebben met dezelfde Tabel1ID, en Generatie wordt gebruikt als secundaire sleutel. En je moet een Table2-record koppelen aan de juiste single Tabel1 record. U kunt de ON . uitbreiden clausule op dezelfde manier waarop u een WHERE . zou uitbreiden clausule.

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


  1. Interviewvraag:Hoe krijg ik de aggregatie van de laatste 3 maanden op kolomniveau?

  2. PHP - Fatale fout:aanroep van een lidfunctie bind_param()

  3. Aangepaste functie met controlebeperking SQL Server 2008

  4. ROracle installeren op Mac OS X - wat is nodig van Oracle?