sql >> Database >  >> RDS >> Mysql

Hoe verwijs ik naar bovenliggende tabel in een join met meerdere tabellen?

De resultaten die u krijgt, worden verwacht. Je zou een ander ID voor C++ moeten hebben en dat zou tot de gewenste resultaten leiden.

U moet een kolom ID toevoegen in de B tabel die u zou gebruiken in de C tabel (als een externe sleutel) zodat u de resultaten kunt filteren.

Door dit probleem met het databaseontwerp op te lossen, kunt u dit probleem oplossen, aangezien uw huidige ontwerp gebrekkig is.

De resulterende zoekopdracht zou er als volgt uit moeten zien:

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;

Ik zou ook aanraden om IDENTITY . te gebruiken id-kolommen die automatisch worden verhoogd, zodat u niet tegen integriteitsproblemen aanloopt.




  1. Moet ik het veldtype MySQL-blob gebruiken?

  2. 10 technieken voor het maken van formulieren in Microsoft Access

  3. SQL Server 2005 draaien op onbekend aantal kolommen

  4. Een-op-veel SQL SELECT in één rij