Comment sélectionner les données à partir de plusieurs tables à l'aide de jointures/sous-requête correctement? (PHP-MySQL)
J'ai trois tables comme indiqué dans l'image ci-dessous.
Remarque: Plomb colonne de projectheader table stocke l'id de l'employé.
Ce que je veux, c'est d'être en mesure de récupérer quelque chose comme le tableau de mon objectif(Plomb, affiche le plomb nom de l'employé)
J'ai été en mesure de le faire à l'aide de la requête ci-dessous.
SELECT DISTINCT
projectdetails.ProjectDetailsID,
projectheader.ProjectID,
projectheader.ProjectName,
projectheader.Lead,
projectheader.StartDate,
projectheader.EndDate,
projectheader.Status,
projectheader.Remarks,
projectdetails.EmployeeID,
employee.Firstname,
employee.Lastname,
Lead.Leadname
FROM
projectheader,
projectdetails,
employee,
( SELECT
projectheader.ProjectID AS projid,
CONCAT(employee.Firstname,' ',employee.Lastname) AS Leadname
FROM employee, projectheader, projectdetails
WHERE projectheader.ProjectID = projectdetails.ProjectID
AND projectheader.Lead = employee.EmployeeID
) AS Lead
WHERE projectheader.ProjectID = projectdetails.ProjectID
AND projectdetails.EmployeeID = employee.EmployeeID
AND projectheader.ProjectID = Lead.projid
AND projectdetails.ProjectID = Lead.projid
Et a obtenu ce résultat:
La requête que j'ai utilisé est assez long et peut-être pas bien écrit, je veux savoir d'une manière différente sur comment je pourrais obtenir le même résultat en utilisant une meilleure sql de la requête, soit par l'utilisation de joindre ou d'une sous-requête. (J'ai ajouté un DISTINCT sur le début de la projectdetails.ProjectDetailsID, car sans elle, certaines lignes sont dupliqués). Je suis à la recherche pour une meilleure requête de celle que j'utilise actuellement.
OriginalL'auteur Randel Ramirez | 2012-06-24
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela (ne l'ai pas testé, vous pouvez donner un essai):
OriginalL'auteur The Nail
Essayer cette Requête j'espère que son travail pour vous
OriginalL'auteur Query Master