SQL Probleem JOIN zelfde table 2 keer

Status
Niet open voor verdere reacties.

Jambo03

Nieuwe gebruiker
Lid geworden
17 dec 2010
Berichten
2
Hallo,

Ik kom maar niet uit een probleem met een JOIN query met 3 tabellen.

tblStudents
tblEvaluationSiteType
tblEvaluation

In tblEvaluation heb ik 2 velden "lEmpOracleNum" en "strEvaluator" waarbij de eerste de id aangeeft van degene die geevalueerd wordt en de tweede degene aangeeft die de evaluatie heeft gedaan. Beide velden moeten gelinkt worden aan veld "EmployeeID" uit tblStudents om de voornaam en achternaam te krijgen.

Ik heb nu 2 queries;[
SQL 1)
SELECT tblEvaluation.ID, tblEvaluation.lEmpOracleNum, tblEvaluation.strDate, tblStudents.strLastName AS StudentLastName, tblStudents.strFirstName AS StudentFirstName, tblEvaluationSiteType.strSiteType
FROM (tblEvaluation LEFT JOIN tblStudents ON tblEvaluation.lEmpOracleNum = tblStudents.EmployeeID) LEFT JOIN tblEvaluationSiteType ON tblEvaluation.IDSiteType = tblEvaluationSiteType.IDSiteType
ORDER BY tblStudents.strLastName, tblEvaluation.strDate DESC

SQL 2)
SELECT tblEvaluation.ID, tblEvaluation.strEvaluator, tblStudents.strLastName AS LastName, tblStudents.strFirstName AS FirstName, tblEvaluationSiteType.strSiteType
FROM (tblEvaluation LEFT JOIN tblStudents ON tblEvaluation.strEvaluator = tblStudents.EmployeeID) LEFT JOIN tblEvaluationSiteType ON tblEvaluation.IDSiteType = tblEvaluationSiteType.IDSiteType

Nu moeten beide queries gekoppeld worden op tblEvaluation.ID.

De output moet worden;
tblEvaluation.ID, tblEvaluation.lEmpOracleNum, StudentLastName, StudentFirstName, strEvaluator, LastName, FirstName, tblEvaluationSiteType.IDSiteType, tblEvaluation.strSiteType

Alle hulp is welkom!
 
Als je twee keer op dezelfde tabel wilt koppelen, moet je de tabel hernoemen bij de tweede JOIN zodat SQL het verschil weet tussen die twee en weet welke waar gebruikt moet worden:

[sql]
SELECT a.naam, b.naam
FROM namen AS a
INNER JOIN koppeling ON a.id = koppeling.a_id
INNER JOIN namen AS b ON b.id = koppeling.b_id
[/sql]
 
Opgelost!

Bedankt net de juiste tip.

Voor de volledigheid en voor andere gebruikers nog even de werkende SQL,

SELECT tblEvaluation.ID, tblEvaluation.lEmpOracleNum, tblEvaluation.strDate, T1.strLastName AS StudentLastName, T1.strFirstName AS StudentFirstName, T2.strFirstName AS EvaluatorFirstName, T2.strLastName AS EvaluatorLastName, tblEvaluationSiteType.strSiteType, tblEvaluation.strBrand, tblEvaluation.strProductType, tblEvaluation.strDesignation, tblEvaluation.A, tblEvaluation.B AS Expr1, tblEvaluation.C, tblEvaluation.D, tblEvaluation.E
FROM ((tblEvaluation LEFT JOIN tblStudents AS T1 ON tblEvaluation.lEmpOracleNum = T1.EmployeeID) LEFT JOIN tblStudents AS T2 ON tblEvaluation.strEvaluator = T2.EmployeeID) LEFT JOIN tblEvaluationSiteType ON tblEvaluation.IDSiteType = tblEvaluationSiteType.IDSiteType
ORDER BY T1.strLastName, tblEvaluation.strDate DESC;
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan