С mysql 5.x вы можете использовать внутренние объединения, чтобы получить то, что вы хотите.
но у Мануэля нет результата, который вы показали нам, это должно быть 2013-03-03 вместо
Соединения могут быть. Если у вас больше элементов, чем событий, и вы все еще хотите их видеть, вы должны использовать ПРАВОЕ СОЕДИНЕНИЕ
CREATE TABLE ficha_cadastro (
`SQ_FICHA` INTEGER,
`NOME` VARCHAR(7)
);
INSERT INTO ficha_cadastro
(`SQ_FICHA`, `NOME`)
VALUES
('1', 'gabriel'),
('2', 'carlos'),
('3', 'manuel');
CREATE TABLE ficha_evento (
`id` INTEGER,
`dia_atendimento` Date,
`ligacao_atendimento` VARCHAR(2),
`SQ_FICHA` INTEGER
);
INSERT INTO ficha_evento
(`id`, `dia_atendimento`, `ligacao_atendimento`, `SQ_FICHA`)
VALUES
('1', '2011-01-01', 'no', '1'),
('2', '2014-04-04', 'ok', '1'),
('3', '2012-01-01', 'no', '2'),
('4', '2013-03-03', 'ok', '3'),
('5', '2013-01-01', 'no', '3'),
('6', '2014-04-04', 'ok', '2');
✓
✓
✓
✓
SELECT
f.id, f.dia_atendimento, fa.NOME, f.ligacao_atendimento
FROM
ficha_evento f
INNER JOIN
(SELECT
MAX(dia_atendimento) daxdate, SQ_FICHA
FROM
ficha_evento
GROUP BY SQ_FICHA) f1 ON f1.daxdate = f.`dia_atendimento`
AND f1.SQ_FICHA = f.SQ_FICHA
INNER JOIN
ficha_cadastro fa ON fa.SQ_FICHA = f.SQ_FICHA
ORDER BY f.SQ_FICHA
id | dia_atendimento | NOME | ligacao_atendimento
-: | :-------------- | :------ | :------------------
2 | 2014-04-04 | gabriel | ok
6 | 2014-04-04 | carlos | ok
4 | 2013-03-03 | manuel | ok
дБ <> скрипка здесь