Мне нужно отобразить список встреч между двумя кандидатами, в которых я должен отображать дату, время последней встречи между двумя кандидатами вместе со счетом всех собраний, которые были организованы между ними.Выберите последнюю строку со счетом всех записей для пары значений
запросов я написал, чтобы выбрать встречи между кандидатами:
SELECT cm.id AS meeting_id, cm.meeting_date, cm.meeting_time, cm.candidate1_id, cm.candidate2_id
FROM candidate_meetings AS cm
JOIN view_candidate_details AS candidate_1 ON candidate_1.id = cm.candidate1_candidate_id
JOIN view_candidate_details AS candidate_2 ON candidate_2.id = cm.candidate2_candidate_id
WHERE (candidate_1.counselor_member_id = 41 OR candidate_2.counselor_member_id = 41)
ORDER BY cm.id DESC
, который дает следующие ouptput:
+------------+--------------+--------------+------------------+-----------------+
| meeting_id | meeting_date | meeting_time | candidate1_id | candidate2_id |
+------------+--------------+--------------+------------------+-----------------+
| 6 | 2016-08-31 | 17:45:00 | 24 | 28 |
| 5 | 2016-08-31 | 17:30:00 | 24 | 28 |
| 4 | 2016-08-31 | 19:30:00 | 24 | 23 |
| 3 | 2016-08-31 | 18:30:00 | 24 | 22 |
| 2 | 2016-08-31 | 19:15:00 | 24 | 21 |
| 1 | 2016-08-31 | 17:15:00 | 24 | 21 |
+------------+--------------+--------------+------------------+-----------------+
Теперь, чтобы получить количество наряду с подробной информацией о самой последней встречи двух кандидат, я добавляю это к запросу:
SELECT *, count(*) AS meeting_count
FROM
(
SELECT cm.id AS meeting_id, cm.meeting_date, cm.meeting_time, cm.candidate1_id, cm.candidate2_id
FROM candidate_meetings AS cm
JOIN view_candidate_details AS candidate_1 ON candidate_1.id = cm.candidate1_candidate_id
JOIN view_candidate_details AS candidate_2 ON candidate_2.id = cm.candidate2_candidate_id
WHERE (candidate_1.counselor_member_id = 41 OR candidate_2.counselor_member_id = 41)
ORDER BY cm.id DESC
) as sub
GROUP BY sub.candidate1_id, sub.candidate2_id;
После запуска этого qu чень Я получаю этот результат:
+------------+--------------+--------------+------------------+-----------------+---------------+
| meeting_id | meeting_date | meeting_time | candidate1_id | candidate2_id | meeting_count |
+------------+--------------+--------------+------------------+-----------------+---------------+
| 1 | 2016-08-31 | 17:15:00 | 24 | 21 | 2 |
| 3 | 2016-08-31 | 18:30:00 | 24 | 22 | 1 |
| 4 | 2016-08-31 | 19:30:00 | 24 | 23 | 1 |
| 5 | 2016-08-31 | 17:30:00 | 24 | 28 | 2 |
+------------+--------------+--------------+------------------+-----------------+---------------+
Но ожидаемый результат
+------------+--------------+--------------+------------------+-----------------+---------------+
| meeting_id | meeting_date | meeting_time | candidate1_id | candidate2_id |meeting_count |
+------------+--------------+--------------+------------------+-----------------+---------------+
| 6 | 2016-08-31 | 17:45:00 | 24 | 28 | 2 |
| 4 | 2016-08-31 | 19:30:00 | 24 | 23 | 1 |
| 3 | 2016-08-31 | 18:30:00 | 24 | 22 | 1 |
| 2 | 2016-08-31 | 19:15:00 | 24 | 21 | 2 |
+------------+--------------+--------------+------------------+-----------------+---------------+
PS: Пожалуйста, игнорируйте порядок столбца идентификаторов в ожидаемом результате.
Спасибо за то, что вы указали правильный путь, а также +1 для предоставления знаний о стандартах sql. – Parth