0

对于错误的术语,我深表歉意,我实际上不是程序员,只是遇到问题的 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代码,都完全正常。

编辑:不,我不想只拆分这两个字段。我需要将它们连接起来,因为我将它们用作我正在制作的表单的下拉列表中的列表项。

4

1 回答 1

0

SQL 查询就是这个。您说您的表称为“Prefectures”和“Ward”,它们在 FROM 子句中使用。

SELECT "Ward Name" || ', ' || "Prefecture Name" AS "Wrd_Pref", "Ward ID"
FROM "Prefectures" INNER JOIN "Ward" ON "Prefectures"."Prefecture ID" = "Ward"."Prefecture ID";
于 2013-05-21T17:40:34.680 回答