我有两个Pod:
course
participant
广告连播course
有一个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
是participant
的ID。
我试图弄清楚如何使用Pods API编写这样的SQL查询:
$pod = pods('course');
$participant_id = $participant->field('id');
$params['where'] = "t.id in (SELECT r.id FROM ??? WHERE ???)";
$pod->find($params);
这是编写此类查询的正确方法吗?
答案 0 :(得分: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。