私はSilverStripe ORMを使用しています。SilverStripe ORMでサブクエリ、グループ、および有する
私は、少なくとも所望の(劣ら)専門ないのALLにあるすべての企業を取得する必要があります:
class CompanyPage extends Page {
private static $many_many = [
"Specializings" => "Specializing",
];
}
class Specializing extends DataObject {
private static $belongs_many_many = [
"CompanyPages" => "CompanyPage",
];
}
私はIDS($ specIds)を専門と希望でいっぱいの配列を持っています。
これは、少なくとも1つの専門分野にある企業を取得しますが、必要なものではありません。
$companyPages = CompanyPage::get()->filter([
"Specializings.ID:ExactMatch" => $specIds,
]);
私は、このSQLクエリ
select * from CompanyPage c1 join (
select c.ID from CompanyPage c
join CompanyPage_Specializings cs on cs.CompanyPageID = c.ID
where cs.SpecializingID in (14,15)
group by c.ID having count(c.ID) = 2
) c2 on c1.ID = c2.ID
と私のタスクをachiveすることができますしかし、私はそれがSilverStripe ORMでどのようにachiveことができますか?
私はあなたがSilverStripeに、より複雑なDBのクエリを構築するためのSQLQueryを使用するかは、RAW SQLを実行したい場合は、DBを使用することができますORM
ありがとうございました。 DB:クエリは今のところ動作します。 – FlamyTwista