0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Salesforce】SOQLとは①

Last updated at Posted at 2025-12-02

この記事は新社会人のSalesforce学習記録とその他 Advent Calendar 2025の3日目の記事です。
今日はSOQLについてアウトプットします。

SOQL

SQLと見た目が結構似ている部分があります。
Salesforceでは、オブジェクトのレコードを探すことができます。
主にApexで使われています。

基本的な書き方

以下の3つ
・SELECT
・FROM
・WHERE
を使うようですが、最後のWHEREは条件を指定する場合に使用するのでなくても行けるようです。
ちなみにこのSELECTとかFROMとかは大文字小文字の区別はありません。

SELECT

どの項目を取ってくるかを指定します。
例)Id,Nameなど
カスタム項目も取ってこれます。カスタム項目の場合、__cとつける必要があります。
例えばNickNameとかいうカスタム項目があれば、
SELECT NickName__c
とか書くようです。

主従関係のあるオブジェクトでは、お互いのオブジェクトの項目を取ってこれます。ただし親→子か、子→親かで書き方が変わってきます。

子→親

子オブジェクトから親オブジェクトの項目を取ってくる場合は、
親オブジェクト名.親オブジェクトの、とってくる項目名
で行けるようです。オブジェクトの主従関係では、親は一つしかないのでそのまま指定できるっぽいです。

例)Account(親、取引先)とContact(子、取引先責任者)の例

SELECT Id,Account.Name FROM Contact;

親→子

サブクエリを使います。そもそもクエリとはSOQL文そのものなので、サブクエリはSOQL文の中に入っているさらに小さなSOQLになります。以下は例です↓

SELECT Id,(SELECT Name FROM Contacts) FROM Account;

みたいな感じです。

躓きポイント

毎回間違えてしまうので書き記しておきます。カスタムオブジェクトのリレーションでは、__rを使用します。その際、カスタムオブジェクト名は複数形になります。
image.png
最初にカスタムオブジェクトを作成した際の、Plural Labelのほうが複数形になります。
新しくDecemberオブジェクトを作成して主従関係を作成、確認します。

SELECT Id,(SELECT LastDay__c FROM AdventCalendars__r) FROM December__c

こんな感じです。逆は

SELECT Id,AdventCalendars__r.Id FROM December__c

これでいけました。
image.png
正しく参照できています。

SOQLを使える場所

主に2つ
1.Apex
2.開発者コンソールのQuery Editor
があります。
基本はApex、Query Editorは確認するときなどに使う?っぽいです。

まとめ

SOQLでは特定のオブジェクトに対して、レコードの内容を取ってこれる。
主従関係がある場合でも、親→子は子オブジェクト__r.子オブジェクトの項目のサブクエリ、子→親は親オブジェクト.項目でとってこれる。
Listでとるのが一般的。とってくるレコードが一つだけならListでなくてもいける。
Apexで主に使われる。開発者コンソールのQueryEditorでも調べることができる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?