У меня есть три таблицы User
, Enquiry
и Activity
.Когда я делаю INNER
и LEFT JOIN
, я получаю дублирующиеся записи из-за значений NULL
.
Пользователь :
User_id | user_firstName | user_lastName
--------+----------------+--------------
1 | Joe | Smith
2 | John | Doe
3 | Robert | Smith
Запрос :
EnquiryID | CreatedBy|
-----------+------------
1 | 1
2 | 1
Активность :
ActivityID | CreatedBy| AssignedBy| AssignedTO
-----------+----------+-----------+-----------
1 | 1 | null | null
2 | 1 | 2 | 3
Ожидаемый результат всех трех результатов объединения:
Enquiry ID | CreatedBy | AssignedBy | AssignedTO
-----------+------------+------------+------------
1 | Joe | null | null
2 | Joe | John | Rober
SQL-оператор:
SELECT DISTINCT
E.EnquirdID AS Enquiry,
U.FirstName AS CreatedBy,
U1.FirstName AS AssignedBy,
U2.FirstName AS AssignedTo
FROM
Enquiry E
INNER JOIN
User U ON E.UserID = U.UserID
INNER JOIN
Activity A ON E.Enquiry = A.EnquiryID
LEFT JOIN
User U1 ON A.AssignedBy = U1.UserID
LEFT JOIN
User U2 ON A.AssignedTo = U2.UserID
Я получаю дубликаты Enquiry
записей из этого запроса, хотя я использую DISTINCT
для EnquiryID
КОНЕЦ РЕЗУЛЬТАТ: мой план заключается в использованииSQL для выбора данных и отображения их в PHP на веб-сайте.Это веб-сайт управления запросами.Я хочу, чтобы PHP мог извлекать переменные из SQL, чтобы я мог использовать их по своему усмотрению.