Mysql
 sql >> база данни >  >> RDS >> Mysql

Свързване на таблици с външни ключове

Ако приемем, че просто искате да съедините всичко заедно, както предлагат ключовете...

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

Но да кажем, че имате този сценарий.

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

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

Да кажем за аргумента, че Table1 може да има множество записи с един и същ Table1ID, а Generation се използва като вторичен ключ. И трябва да присъедините запис на Table2 към правилния единичен Таблица 1 запис. Можете да разширите ON клауза по същия начин, по който бихте разширили WHERE клауза.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php с рамката на codeigniter

  2. PHP 7.2.2 + mysql 8.0 PDO дава:метод за удостоверяване, неизвестен на клиента [caching_sha2_password]

  3. Грешка при създаването на таблица

  4. Grails 3 - Gradle зависимости Mysql конектор

  5. нов разделител на редове не работи за функцията group_concat