Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Unindo tabelas com chaves estrangeiras


Supondo que você queira apenas juntar tudo como as chaves sugerem ...
SELECT *
FROM table1
INNER JOIN table3 on table3.table1ID = table1.table1ID
INNER JOIN MEM_INSTR on MEM_INSTR.table2ID = table3.table2ID

Mas digamos que você tenha esse cenário.
CREATE TABLE Table1 (
    Table1ID NUMBER, 
    Generation NUMBER, 
    ... 
);

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

Digamos para fins de argumentação que Table1 pode ter vários registros com o mesmo Table1ID e Generation é usado como uma chave secundária. E você precisa juntar um registro Table2 ao single correto Registro da Tabela1. Você pode expandir o ON cláusula da mesma forma que você expandiria um WHERE cláusula.
SELECT *
FROM table1 t1
INNER JOIN table2 t2 
    ON t2.table1id = t1.table1id 
    AND t2.table1generation = t1.generation