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を取得します。

