对于错误的术语,我深表歉意,我实际上不是程序员,只是遇到问题的 Base 用户。
我在查询应该是两个单独表的两个字段的串联的列时遇到问题。我使用的是 LibreOffice Base Version 1:3.6.2,它有默认的 HSQL 引擎。
我的两张表如下:
表 1 被命名"Prefectures"
并具有以下字段:ID、"Prefecture Name"
和"State"
表 2 被命名"Ward"
并具有以下字段:ID、"Ward Name"
和县 ID,它是引用表 1 的外键。
我希望我的查询产生的是这两列:“Ward Name,Prefecture Name”作为 Ward.WardName 和 Prefecture.PrefectureName 的串联,以及 Ward ID
例如。如果我有一个名为“Cebu”的县和一个名为“Lahug”的病房,其病房 ID 为 0,我希望查询在第 1 列中显示“Lahug, Cebu”,在第 2 列中显示“0”
与实际的 HSQL 语言相比,我使用的 Base 教程似乎有一种修改过的语言,至少基于我的程序员朋友的反应。例如,我知道属性被称为Table.Attribute
,但是在 Base 中,它们使用"Attribute"
,或者,如果我没记错的话,当需要指定原始表时,"Table"("Attribute")
。但是,我知道这种修改后的语言可以工作,因为我用它来创建我的两个表。
无论如何,冒险从 Base 教程文档中学到的东西,我想出了:
SELECT "Ward Name" || ', ' || "Prefecture Name" AS "Wrd_Pref",
"Ward ID"
FROM "Prefecture" INNER JOIN "Ward" ON "Prefecture" ("Prefecture ID") = "Ward" ("Prefecture ID")
;
出现的错误消息是:“无法加载数据内容。访问被拒绝:语句中的 PREFECTURE [上面的整个代码]”
我怀疑这是由于我的语法错误导致的误读。也许我对在这种情况下使用括号的猜测是错误的?如果是这样,为什么错误消息“访问被拒绝”?我检查了两个表的记录和sql代码,都完全正常。
编辑:不,我不想只拆分这两个字段。我需要将它们连接起来,因为我将它们用作我正在制作的表单的下拉列表中的列表项。