FileMaker:以一对多的关系获取特定的相关记录

时间:2013-04-07 05:43:25

标签: relationship filemaker

假设我有两个表,A和B.A有一个ID字段,B有ID,Value和Title字段。这两个ID字段是相关的,因此A和B之间存在一对多的关系。

我想要做的是在A中添加一个计算字段,以从特定值的相关B记录中检索标题。这可能吗?

2 个答案:

答案 0 :(得分:2)

根据您要实现的目标,有两种方法可以实现此目的:

A::index ---< B::indexOfA

关系排序

如果在A中创建一个新的计算字段,其中计算= B ::标题,则将使用第一条记录(按排序顺序)。

示例:B有一个字段B :: recordDate,无论输入记录的顺序如何,您总是想要最新的recordDate。您可以修改A :: index ---&lt; B :: indexOfA关系按recordDate降序排序。您的A :: titleFromB计算字段为:

B::Title

<强> GetNthRecord

http://www.filemaker.com/help/html/func_ref3.33.10.html

如果您希望关系中的特定记录编号为B,则可以使用GetNthRecord函数。

示例:您始终希望显示与B的关系的第二条记录。您的A :: titleFromB计算字段将为:

GetNthRecord(B::Title ; 2)

<强>的ExecuteSQL

在FileMaker 12中,您可以使用ExecuteSQL计算。

示例:假设您知道要显示标题的记录的B :: index。您的A :: titleFromB计算字段为:

ExecuteSQL("SELECT Title from B WHERE index = ?"; ¶ ; "," ; <field, variable or string with index of B> )

答案 1 :(得分:0)

您希望构建关系的方式是每个A和B都有自己唯一的ID字段。然后在B中,有一个id_a字段(或类似的东西),你可以建立你的关系。

从那里我回应了pft221关于ExecuteSQL的内容。这对我来说是一个很棒的功能。它会是这样的:

ExecuteSQL ( "SELECT Title FROM B WHERE id_a =? and title = ?"; ""; ""; <id_a value>; <title value> )

您也可以进行内部联接,但这似乎比它的价值更麻烦。