TYPO3基于其他表的Extbase查询

时间:2016-10-26 11:47:18

标签: sql typo3 extbase

我得到了一张与另一张相关的表格

TABLE A
uid
name

TABLE B
uid
name
rel_table_a

现在我想:

// find all table A that is related to by table B
public function findAllTableAThatIsRelatedToByTableB() {
  $query = $this->createQuery();

  // what should this line be?
  //$query->matching($query->count(tableB.rel_table_a = uid));

    return $query->execute();
}

是否可能或者是否需要首先在表A的TCA中创建关系。

1 个答案:

答案 0 :(得分:2)

您可以在查询中使用相关表,但首先需要正确设置TCA和模型,否则extbase不知道表的关联方式。

作为查询条件,您可以检查关系是否存在。

在您的结构中,我们只能对表B执行此查询,因为您的表A没有关系字段,因此在此示例中,您将获得表B中具有表A元素相关的所有项。

$query->matching($query->greaterThan('rel_table_a.uid', 0));

如果从表A到表B的关系为1:n,则应使用内联字段。这样您就可以对表A进行查询:https://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Inline/Index.html

PS:您无法在$query->count

中使用$query->matching