내가 테이블 t이없는 X 날짜 이후에, 그리고 다른 테이블의 경우, X 일 이전, 값마다 가장 최근의 선택 :MySQL은
id, timestamp
이 여러 ID 값이 있으며, 여러 행이를 공유 할 수 주어진 이드.
x 날짜 이전에 id가 발견되지 않고 id가 y 표에서 발견되지 않는 경우에만 각 id에 대해 x 날짜 이전의 가장 최근 행을 선택하려고합니다.
내가 단, x 일 전에 모든를 선택할 수 있습니다 : 날짜 = 5 :
SELECT * FROM t WHERE timestamp < :date
내가하지 최근 점점 만 가장 최근의 ID를 얻기 위해 시도 -하지만, ID 당 1 개 행을 반환 :
저는 GROUP BY가 많은 데이터로 인해 작업 속도를 늦출 것이라고 우려하고 있습니다.
CREATE TABLE IF NOT EXISTS `t` (
`id` int(2) NOT NULL,
`timestamp` int(2) NOT NULL
)
INSERT INTO `t` (`id`, `timestamp`) VALUES
(1, 1),
(1, 4),
(2, 3),
(2, 1),
(2, 6),
(3, 4),
(3, 2);
CREATE TABLE IF NOT EXISTS `y` (
`id` int(2) NOT NULL,
`timestamp` int(2) NOT NULL
)
INSERT INTO `y` (`id`, `timestamp`) VALUES
(3, 1);
은 행 (1,4) 만 ...
감사를 반환하는 상대 :
는 여기에 몇 가지 샘플 DB 데이터입니다!
"timestamp value에"(1,4) 만 "결과가 필요합니까? –
즉'SELECT * FROM t WHERE timestamp <: date' - 당신의 예제는': date'입니까? –
이 예제에서는 : date로 5를 사용합니다! – cars