Das Problem, wie bereits erwähnt, ist, dass Sie PEiD aus zwei Tabellen auswählen, die Lösung angeben, welche PEiD wollen Sie zum Beispiel
SELECT tb.*
FROM (
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
) AS tb;
Abgesehen davon, wie Chris Lively weist darauf hin, geschickt in Ein Kommentar der äußeren SELECT ist völlig überflüssig. Das Folgende ist völlig gleichwertig mit dem ersten.
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
oder sogar
SELECT *
FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2
ON tb1.PROD_PERM = tb2.PEID
INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
aber bitte vermeiden, mit SELECT *, wann immer möglich. Es kann funktionieren, während Sie interaktive Abfragen ausführen, um die Eingabe zu speichern, aber im Produktionscode niemals verwenden.
Nur aus Neugier, warum haben Sie die äußere „tb wählen. *“? – NotMe