sql >> Databasteknik >  >> RDS >> Mysql

Hur refererar jag till en överordnad tabell i en flertabellskoppling?

Resultaten du får förväntas. Du bör ha ett annat ID för C++ och det skulle leda till de resultat du vill ha.

Du måste lägga till och ID-kolumnen i B tabell som du skulle använda i C tabell (som en främmande nyckel) så att du kan filtrera resultaten.

Att fixa detta problem med databasdesign hjälper dig att lösa det här problemet eftersom din nuvarande design är felaktig.

Den resulterande frågan bör se ut så här:

SELECT *
FROM A
   LEFT OUTER JOIN B ON A.id = B.pid
   LEFT OUTER JOIN C ON A.id = B.pid AND C.newForeignKeyId=B.newId;

Jag skulle också rekommendera att du använder IDENTITY id-kolumner som ökar automatiskt så att du inte stöter på integritetsproblem.




  1. Standardlösenord för mysql i ubuntu-server 16.04

  2. CakePHP 3:Bästa praxis för tillfälliga SQL-tabeller

  3. SQLite - Exportera data till en CSV-fil

  4. Hur man distribuerar Teamcity med PostgreSQL för hög tillgänglighet