У меня проблемы с запросом SQL;Я пытаюсь получить последнюю дату обслуживания каждого «актива».
Я пытаюсь использовать левое соединение с подзапросом с пределом 1.
Вот мои таблицы:
lctn_test
testID, cleintID
1, 34
2, 34
srvc_test
srvcTestID, testID, serviceDate, servicePassed
1, 1, 2018-05-19 03:23:53, 1
2, 1, 2018-05-19 11:46:49, 1
3, 2, 2018-05-19 11:47:24, 1
и вот что я попробовал (а также несколько вариантов)
SELECT
lctn.testID AS assetID, lctn.ClientID,
srvc_test.serviceDate, srvc_test.servicePassed
FROM
lctn_test AS lctn
LEFT JOIN
srvc_test ON lctn.testID = (SELECT srvc_test.testID
FROM srvc_test
WHERE srvc_test.testID = lctn.testID
ORDER BY srvc_test.serviceDate DESC
LIMIT 1)
WHERE
lctn.ClientID = 34
ORDER BY
assetID
ЧтоЯ ожидал получить:
assetID, ClientID, serviceDate, servicePassed
1, 34, 2018-05-19 11:46:49, 1
2, 34, 2018-05-19 11:47:24, 1
но это то, что я на самом деле получаю:
assetID, ClientID, serviceDate, servicePassed
1, 34, 2018-05-19 03:23:53, 1
1, 34, 2018-05-19 11:46:49, 1
1, 34, 2018-05-19 11:47:24, 1
2, 34, 2018-05-19 03:23:53, 1
2, 34, 2018-05-19 11:46:49, 1
2, 34, 2018-05-19 11:47:24, 1
Я все еще изучаю SQL (mysql) и не могу видеть свою жизньпроблема;Держу пари, что это ошибка нуба, но я ее просто не вижу.