1

我有两个 Pod:

  • course
  • participant

Podcourse有一个 PICK 字段,participant.该字段是一个多重关系字段。因此,每个course项目都有多个participants.

我想找到与course某个特定participant相关的所有项目。

所以,我猜像下面这样的 SQL 查询会做我想要的:

SELECT DISTINCT `t`.* FROM `wp_pods_course` AS `t` WHERE t.id IN 
   (SELECT DISTINCT r.item_id FROM wp_podsrel AS r WHERE r.related_item_id = '42')

42是 a 的 id participant

我试图弄清楚如何使用 Pods API 编写这样的 SQL 查询:

$pod = pods('course');
$participant_id = $participant->field('id');
$params['where'] = "t.id in (SELECT r.id FROM ??? WHERE ???)";
$pod->find($params);

这是编写此类查询的正确方法吗?

4

1 回答 1

4

你把事情复杂化了,Pods 使用它最强大的功能之一,即字段遍历,自动为你完成所有连接。

尝试这个:

$pod = pods( 'course' );

// I use ->id() because it's always the right ID field, no matter what pod type
$participant_id = $participant->id();

$params = array(
    'where' => 'participants.id = ' . (int) $participant_id
);

$pod->find( $params );

您的关系字段名称在哪里particpants,id 是该相关对象上的字段 id。

于 2013-01-04T22:47:05.453 回答