在SQLite中,使用引用字段别名的子选择,MySQL语句的等效值是什么
这个问题看起来比问题本身更复杂。这里是一个例子。 我在MySQL中有一个“Test”表,只有一个字段:ObjectId INTEGER(10)。 ObjectId字段中的值:在SQLite中,使用引用字段别名的子选择,MySQL语句的等效值是什么,mysql,sqlite,subquery,Mysql,Sqlite,Subquery,这个问题看起来比问题本身更复杂。这里是一个例子。 我在MySQL中有一个“Test”表,只有一个字段:ObjectId INTEGER(10)。 ObjectId字段中的值: 1 1 1 2 2 我在MySQL查询浏览器中执行以下语句: SELECT DISTINCT ObjectId obid, (SELECT count(*) FROM Test WHERE ObjectId = obid) AS cnt FROM Test 结果是我所期望的:在上面的示例中,有两行包含: 第1列:Obje
1
1
1
2
2 我在MySQL查询浏览器中执行以下语句:
SELECT DISTINCT ObjectId obid, (SELECT count(*) FROM Test WHERE ObjectId = obid) AS cnt FROM Test
结果是我所期望的:在上面的示例中,有两行包含:
第1列:ObjectId值
第2列:各ObjectId值在该列中出现的次数。
现在,我在SQLite数据库中创建的相同表(结构和数据)上执行相同的语句。我得到一个错误告诉“没有这样的专栏:欧比德” 上述选择对我来说非常方便。被迫用一系列的选择(比如使用光标)来替换它看起来有点奇怪。我是SQLite的新手,所以我可能错过了一些东西。我做了很多调查,结果都是零 那么,有没有人知道是否有一个类似的、单一的SELECT语句会在SQLite数据库上产生相同的结果
谢谢你做得很复杂。:)你应该得到你想要的
SELECT ObjectID AS obid, COUNT(1) AS cnt
FROM Test
GROUP BY ObjectID
你的做法很复杂。:)你应该得到你想要的
SELECT ObjectID AS obid, COUNT(1) AS cnt
FROM Test
GROUP BY ObjectID
谢谢galador,你说得绝对正确,它很有效,而且简单得多。我应该重新考虑我复杂的方式:)谢谢加拉多,你完全正确,它有效,而且更简单。我应该重新考虑我复杂的方式:)