SOQLとは

SOQL = Salesforce Object Query Language

Salesforceに保存されているデータを取得するための言語です。

特定のObjectから、条件に一致するRecordを取得するときに使用します。

SELECT Name, Phone
FROM Account

基本構文

SELECT Field
FROM Object
WHERE 条件
ORDER BY Field
LIMIT 件数

それぞれ:

SELECT   → 取得するField
FROM     → 取得するObject
WHERE    → 条件
ORDER BY → 並び替え
LIMIT    → 取得件数

例えば:

SELECT Name, Phone
FROM Account
WHERE NumberOfEmployees > 25
ORDER BY Name
LIMIT 10

WHERE:条件

WHEREで取得するRecordの条件を指定します。

SELECT Name
FROM Account
WHERE Name = 'Wingo'

複数の条件も指定できます。

WHERE Name = 'Wingo'
AND NumberOfEmployees > 25
AND → 両方を満たす
OR  → どちらかを満たす

ApexでSOQLを使用する

ApexではSOQLを[ ]で囲みます。

List<Account> accounts = [
    SELECT Id, Name
    FROM Account
];
List<Account> → AccountのRecordを複数保存
accounts      → 変数
[ ... ]       → SOQL

バインド変数

Apexの変数をSOQLで使用するときは:を付けます。

String targetName = 'Wingo';

List<Account> accounts = [
    SELECT Id, Name
    FROM Account
    WHERE Name = :targetName
];
targetName  → Apexの変数
:targetName → SOQLで変数の値を使用

Relationship Query

関連するObjectのデータも取得できます。

子 → 親

SELECT FirstName, LastName, Account.Name
FROM Contact

Contactから、関連するAccountのNameを取得します。

Contact      → 子
Account      → 親
Account.Name → 親のName

親 → 子

SELECT Name,
       (SELECT FirstName, LastName FROM Contacts)
FROM Account

Accountと、それに関連する複数のContactを取得します。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

技術情報

前の記事

Salesforce SOSLとは?