[Tips] SOQLで子レコードを持たない親レコードだけ抽出する

2023.01.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

SalesforceのSOQLにて、子レコード持たない親レコードをSELECTするには次のような方法が使えます。

SELECT
    Id
FROM
    Parent__c
WHERE
    Id Not IN (
        SELECT
            Parent__c
        FROM
            Child__c
    )

親がParent__c、子がChild__cになります。

より具体的に、例えば取引先責任者を持たない取引先をSELECTする場合は次のSOQLで行えます。

SELECT
    Id
FROM
    Account
WHERE
    Id Not IN (
        SELECT
            AccountId
        FROM
            Contact
    )

簡単ですね。