SQL扫描数据库中以前的记录
以桌子为例SQL扫描数据库中以前的记录,sql,sqlite,Sql,Sqlite,以桌子为例 Index Col_1 Col_2 Value_of_Interest Record_1 1 Record_2 2 . . . Record_N N Index Col_1 Col_2 Value_of_Interest Record_1 1 Ed Bill 1 Record_2 2 James Rob
Index Col_1 Col_2 Value_of_Interest
Record_1 1
Record_2 2
.
.
.
Record_N N
Index Col_1 Col_2 Value_of_Interest
Record_1 1 Ed Bill 1
Record_2 2 James Rob 0
Record_3 3 Tom Rob 1
Record_4 4 Bill Rob 0
我想选择一组记录{Record_I},以便记录_I+1的列_1存在于{select Col_2 FROM table WHERE Index中
MySQL 5.5.32架构设置:
问题1:
你能用英语重新表述这个问题吗?哈哈,我会再解释一次。你为什么要使用MySQL?Oupsss…没有看到SQLFIDLE中有SQLite…但它是基本SQL…所以它可以工作…可能只是```
Index Col_1 Col_2 Value_of_Interest
Record_3 3 Tom Rob 1
SELECT *
FROM MyTable AS T1
WHERE (SELECT Col_1
FROM MyTable AS T2
WHERE T2.Index = T1.Index + 1
) IN (SELECT Col_2
FROM MyTable AS T3
WHERE T3.Index < T1.Index)
CREATE TABLE Table1
(`Index` int, `Col_1` varchar(5), `Col_2` varchar(4), `Value_of_Interest` int)
;
INSERT INTO Table1
(`Index`, `Col_1`, `Col_2`, `Value_of_Interest`)
VALUES
(1, 'Ed', 'Bill', 1),
(2, 'James', 'Rob', 0),
(3, 'Tom', 'Rob', 1),
(4, 'Bill', 'Rob', 0)
;
SELECT t1.`Index`, t1.Col_1, t1.Col_2, t1.Value_of_Interest
FROM Table1 t1
WHERE t1.`index` =
(SELECT t2.`index`-1
FROM Table1 t2
WHERE t2.Col_1 IN
(SELECT Col_2 FROM Table1 t3 WHERE t3.`Index` < t2.`Index`))
| INDEX | COL_1 | COL_2 | VALUE_OF_INTEREST |
|-------|-------|-------|-------------------|
| 3 | Tom | Rob | 1 |