sql >> Databasteknik >  >> RDS >> Mysql

Sammanfoga bord med främmande nycklar

Förutsatt att du bara vill sammanfoga allt som nycklar föreslår...

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

Men låt oss säga att du har det här scenariot.

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

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

Låt oss för argumentets skull säga att Tabell1 kan ha flera poster med samma Tabell1ID och Generation används som en sekundär nyckel. Och du måste ansluta en Table2-post till rätt singel Tabell 1 rekord. Du kan utöka ON sats på samma sätt som du skulle expandera en WHERE klausul.

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


  1. Hur man aktiverar alla begränsningar för kontroll och främmande nyckel i en databas i SQL Server (T-SQL-exempel)

  2. Skapa en webbapp från grunden med Python Flask och MySQL:Del 4

  3. Hur kan jag välja den senaste inmatningen för varje medlem?

  4. jOOQ infoga fråga med returnerande genererade nycklar