【发布时间】:2015-04-10 12:49:54
【问题描述】:
col0 col1 col2 A B C
0 0 1 1 2 3
0 1 1 1 2 3
0 0 1 1 2 3
0 2 0 1 2 3
0 1 1 1 2 3
您好,我有一个表,其中一些列是 col0、col1、col2。首先,我想找到满足某些条件的每个组合。假设为简单起见,在数据库中找到不止一次的每个三元组(在我更复杂的真实案例中需要分组和拥有):
SELECT col0,col1,col2 FROM table GROUP BY col0,col1,col2 HAVING COUNT(*) > 1
给了我类似的东西:
col0 col1 col2
0 0 1
0 1 1
现在我想选择(实际上是删除)所有包含这些 col0、col1、col2 组合之一的行。
比如:
SELECT * FROM table WHERE (col0,col1,col2) IN (...select above...)
但这给了我一个错误,我猜 SQLite 中的 WHERE 子句只允许一列。所以可能必须使用某种连接,但我很难使用正确的语法和连接类型。如何进行?谢谢。
【问题讨论】:
-
该表是否具有单列主键?
-
没有指定主键,可能只是一些自动的id可以使用
标签: sqlite