草庐IT

join_group

全部标签

sql - 为什么 SQLite 在添加 JOIN 时拒绝使用可用索引?

这与WhyisSQLiterefusingtouseavailableindexes?有关创建数据库的查询是:CREATETABLEfoo(idTEXT);CREATEINDEX`foo.index`ONfoo(id);CREATETABLEbar(idTEXT);CREATEINDEX`bar.index`ONbar(id);CREATEVIEWbazASSELECTidFROMfooUNIONALLSELECTidFROMbar;CREATETABLEbam(idTEXT,valueTEXT);INSERTINTOfooVALUES('123');INSERTINTOfooVALU

sql - SQLite INNER JOIN 中的 "ambiguous column name"

我在SQLite数据库中有两个表,INVITEM和SHOPITEM。他们的共享属性是ItemId,我想执行INNERJOIN。这是查询:SELECTINVITEM.CharIdASCharId,INVITEM.ItemIdASItemIdFROM(INVITEMasINVITEMINNERJOINSHOPITEMASSHOPITEMONSHOPITEM.ItemId=INVITEM.ItemId)WHEREItemId=3;SQLite不喜欢它:SQLerror:ambiguouscolumnname:ItemId如果我编写WHEREINVITEM.ItemId=3,错误就会消失,但由

SQLite COUNT 和 LEFT JOIN - 如何结合?

有两个表:一个(P)包含产品列表,另一个(H)包含产品消费历史。每个产品都可以被消费0次或更多次。我需要构建一个查询,该查询将返回P中的所有产品以及每种产品的消费次数,并按消费次数排序。这是我所做的:SELECTP.ID,P.Name,H.Date,COUNT(H.P_ID)asCountFROMPLEFTJOINHONP.ID=H.P_IDORDERBYCountDESC这似乎仅在历史表包含数据时才有效,但如果不包含数据-结果不正确。我做错了什么? 最佳答案 您需要一个groupby来获得您需要的计数。你还需要对H.Date应用聚

Android:执行INNER JOIN时如何从Cursor访问结果?

我在我的SQLite数据库中的两个表table1和table2上使用INNERJOIN。如何从游标访问结果(两个表的列)?这两个表有2个同名的列。Stringquery=SELECT*FROMtable1INNERJOINtable2ONtable1.id=table2.idWHEREnamelike'%c%';Cursorc=newDB.rawQuery(query,null); 最佳答案 您可以指定列名而不是使用“*”。Stringquery=SELECTtable1.idASID,table2.column2ASc2,....

sqlite - iOS 8 - 为 App Group 创建 SQLite 数据库

我正忙于为我的应用创建iOS8Today扩展。我想从我的扩展程序访问我的SQLite(不是核心数据)数据库。在网上稍作搜索后,我发现我需要一个AppGroup。所以我为我的应用创建了一个应用组,命名为“group.AppName”。使用以下代码,我在NSDocumentDirectory中创建了一个SQLite数据库。但是AppExtensions不能访问NSDocumentDirectory。这就是为什么我想将SQLite数据库保存在我的应用程序组中。NSArray*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirector

iphone - 核心数据 : Is it possible to use custom function in group by

在objective-c中制作NSFetchRequest时,是否可以按部分分组使用自定义函数(strftime)?sql语句在sqlite中完全有效:selectdate,count(*)fromnotegroupbystrftime('%Y%m%d',date)但是,经过一天的挖掘和尝试各种方法和解决方案后,我得出的结论是,在单个sql提取中使用核心数据是不可能的。我将NSFetchRequest与setPropertiesToGroupBy一起使用(仅限iOS5.0)。更新。有一个example使用苹果提供的核心数据获得此类行为。但是,我启用了“-com.apple.CoreDa

SQLite3 使用 LEFT JOIN 和 UNION 模拟 RIGHT OUTER JOIN

我有以下选择语句,我需要对表tbTasks中的每个任务求和,并按表tbProjects中的projectId对它们进行分组,以便获得这样的记录:ProjectID=1,ProjectName='MyProject',TotalTime=300//查询看起来像这样:SELECTtbTasks.projectId,SUM(tbTasks.taskTime)AStotalTime,tbProjects.projectNameFROMtbTasksINNERJOINtbProjectsONtbTasks.projectId=tbProjects.projectIdGROUPBYtbTasks.

sqlite - 在 sqlite 中使用 group by 选择每个组中的第一行

我在sqlite中有一张表。我正在尝试获得每个组的第一行。尽管之前有关于相同的问题。我在sqlite中找不到解决方案。我的表格是这样的:select*fromgeoviewMaxOfStatecountpercent|statepoolnumber|STATECODE1231234CA1231234FL2341678TX2341678MN2340987FL2340987CA2349876TX我想查询每个statepoolnumber中的第一个MaxOfStatecountpercent和第一个STATECODE。等效的访问sql查询是:selectfirst(MaxOfStatecou

sql - 如何让 GROUP BY 和 COUNT 包含零和?

我有这样的SQL($ytoday是5天前):$sql='SELECTCount(*),created_atFROMPeopleWHEREcreated_at>="'.$ytoday.'"ANDGROUPBYDATE(created_at)';我希望它每天返回一个值,因此在这种情况下(5天前到今天)它会返回5个结果。但是如果昨天的Count(*)为0,则它不会返回该日期的任何数据,而不是返回零。如何更改该SQLite查询,使其也返回计数为0的数据? 最佳答案 如果没有复杂的(在我看来)查询,您的输出数据集将不会包含输入数据集中不存在的

ios - 从扩展程序写入存储在 App Group 容器中的数据库

我在AppGroup容器中存储了一个sqlite数据库,以便注册自定义快捷方式。我可以从应用程序读取/写入它,但不能从键盘扩展程序读取/写入。看来数据库在扩展中处于只读模式。我正在使用以下代码访问它:letappGroupDirectoryPath=NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier(appGroupId)letdataBaseURL=appGroupDirectoryPath!.URLByAppendingPathComponent("database.sql