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

2023.01.25

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
    )

簡単ですね。