sql >> Database teknologi >  >> RDS >> Mysql

Hvordan refererer jeg til overordnet tabel i en multitabel join?

De resultater, du får, forventes. Du bør have et andet id til C++, og det ville føre til de ønskede resultater.

Du skal tilføje og ID-kolonnen i B tabel, som du ville bruge i C tabel (som en fremmednøgle), så du kan filtrere resultaterne.

Løsning af dette databasedesignproblem vil hjælpe dig med at løse dette problem, da dit nuværende design er mangelfuldt.

Den resulterende forespørgsel skal se sådan ud:

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;

Jeg vil også anbefale at bruge IDENTITY id-kolonner, der øges automatisk, så du ikke løber ind i integritetsproblemer.




  1. Hvordan beregner man tidsforskel med tidsplan, der arbejder sort/hvid to tidsstempler?

  2. Mysql konvertere få kolonner til en række

  3. Hvordan indlæser jeg en sql.gz-fil til min database? (importerer)

  4. Sådan vælger du en enkelt række baseret på den maksimale værdi i flere rækker