の > 6にない の 1 ~ 3 のすべてdata
を取得したいid
id
簡単にするために ID を使用していますが、実際にはタイムスタンプを使用しています。
CREATE TABLE test (
id bigint(20) NOT NULL AUTO_INCREMENT,
data varchar(3) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO test (id, data) VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi'),
(4, 'jkl'),
(5, 'mno'),
(6, 'pqr'),
(7, 'def'),
(8, 'vxw'),
(9, 'yz');
私が試した数十のクエリのうちの1つ。
SELECT
t1.data t1_data,
t2.data t2_data
FROM test t1
JOIN test t2
ON t2.id BETWEEN 1 AND 3
AND t1.id > 6
AND t1.data <> t2.data
だから私はこの結果を得たい:
+----------+
| data |
+----------+
| abc |
| ghi |
+----------+