sqlite查询返回可执行文件中的不完整数据

发布于 2025-01-26 11:56:19 字数 1828 浏览 0 评论 0原文

我正在尝试在数据库上运行以下查询:

select t.*, c.category from (select t.*, l.CategoryID from (select t.*,
ht.TotalAttachments from (select t.*, s.TaskID as Parent from Tasks45 t
left join Subtasks45 s on t.TaskID = s.SubtaskID WHERE DueDate BETWEEN
'1900-01-01' AND '2099-12-31') t left join (select TaskID,
count(THyperlinkID) as TotalAttachments from HyperlinksTasks group by
TaskID) ht on t.TaskID = ht.TaskID) t left join LinksTasksCategories l
on t.TaskID = l.TaskID) t left join categoriesA c on t.CategoryID =
c.CategoryID order by [Parent] asc, [DueDate] asc, [Priority] desc,
[PecentageComplete] asc

当我在终端运行程序时,这起作用,但是一旦将其编译成可执行文件,它就无法正常工作。可执行文件为64位。
我的意思是说,返回的行不包含我在“类别”表中的“类别”密钥。

我怀疑加入操作是原因,但是我在哪里开始研究?

编辑:表定义是

CREATE TABLE LinksTasksCategories (
    TaskID     INTEGER (10),
    CategoryID GUID (36),
    FOREIGN KEY (
        CategoryID
    )
    REFERENCES categoriesA (CategoryID),
    FOREIGN KEY (
        TaskID
    )
    REFERENCES Tasks45 (TaskID)
);

CREATE TABLE categoriesA (
    CategoryID GUID (36),
    category   VARCHAR (50)
);

CREATE TABLE Tasks45 (
    TaskID            INTEGER               PRIMARY KEY AUTOINCREMENT,
    Subject           VARCHAR (255),
    Description       LONGCHAR (1073741823),
    StartDate         TIMESTAMP (19),
    DueDate           TIMESTAMP (19),
    PecentageComplete BYTE (3),
    Priority          INTEGER (10),
    ReplicaID         GUID (36),
    Cancelled         BIT (1)
);

CREATE TABLE HyperlinksTasks (
    THyperlinkID GUID (36),
    TaskID       INTEGER (10),
    THyperlink   VARCHAR (255),
    TPath        VARCHAR (255),
    FOREIGN KEY (
        TaskID
    )
    REFERENCES Tasks45 (TaskID) 
);

错误:

if row['category'] is not None:
KeyError: 'category'

I'm trying to run the following query on my database:

select t.*, c.category from (select t.*, l.CategoryID from (select t.*,
ht.TotalAttachments from (select t.*, s.TaskID as Parent from Tasks45 t
left join Subtasks45 s on t.TaskID = s.SubtaskID WHERE DueDate BETWEEN
'1900-01-01' AND '2099-12-31') t left join (select TaskID,
count(THyperlinkID) as TotalAttachments from HyperlinksTasks group by
TaskID) ht on t.TaskID = ht.TaskID) t left join LinksTasksCategories l
on t.TaskID = l.TaskID) t left join categoriesA c on t.CategoryID =
c.CategoryID order by [Parent] asc, [DueDate] asc, [Priority] desc,
[PecentageComplete] asc

This works, when I run my program in the terminal, but once it is compiled into an executable it doesn't work. The executable is 64-bit.
By doesn't work I mean, the rows returned do not contain a 'category' key, which I have in the 'categoriesA' table.

I suspect the join operation to be the cause, but where would I begin looking into this?

Edit: Table definitions are

CREATE TABLE LinksTasksCategories (
    TaskID     INTEGER (10),
    CategoryID GUID (36),
    FOREIGN KEY (
        CategoryID
    )
    REFERENCES categoriesA (CategoryID),
    FOREIGN KEY (
        TaskID
    )
    REFERENCES Tasks45 (TaskID)
);

CREATE TABLE categoriesA (
    CategoryID GUID (36),
    category   VARCHAR (50)
);

CREATE TABLE Tasks45 (
    TaskID            INTEGER               PRIMARY KEY AUTOINCREMENT,
    Subject           VARCHAR (255),
    Description       LONGCHAR (1073741823),
    StartDate         TIMESTAMP (19),
    DueDate           TIMESTAMP (19),
    PecentageComplete BYTE (3),
    Priority          INTEGER (10),
    ReplicaID         GUID (36),
    Cancelled         BIT (1)
);

CREATE TABLE HyperlinksTasks (
    THyperlinkID GUID (36),
    TaskID       INTEGER (10),
    THyperlink   VARCHAR (255),
    TPath        VARCHAR (255),
    FOREIGN KEY (
        TaskID
    )
    REFERENCES Tasks45 (TaskID) 
);

Error:

if row['category'] is not None:
KeyError: 'category'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文