Tôi có ba bảng như trong hình dưới đây.Làm cách nào để chọn dữ liệu từ nhiều bảng bằng cách sử dụng kết nối/truy vấn con đúng cách? (PHP-MySQL)
Lưu ý:Cột dẫn đầu bảng dự án lưu trữ ID nhân viên.
Những gì tôi muốn có là có thể lấy một cái gì đó giống như một trong bảng mục tiêu của tôi (chì, hiển thị tên chính của nhân viên đó)
tôi đã có thể làm điều đó bằng truy vấn bên dưới.
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
Và có kết quả này:
Các truy vấn mà tôi sử dụng là khá dài và có lẽ không được viết tốt, tôi muốn biết một cách khác nhau về cách tôi có thể đạt được kết quả tương tự bằng cách sử dụng tốt hơn truy vấn sql bằng cách sử dụng tham gia hoặc truy vấn phụ. (Tôi đã thêm một DISTINCT vào đầu projectdetails.ProjectDetailsID vì không có nó một số hàng được nhân đôi). Tôi đang tìm kiếm một truy vấn tốt hơn truy vấn tôi hiện đang sử dụng.
Đừng nói, chỉ hành động. –