contoh dari dokumen doktrin:
Konstruk INDEX BY bukanlah apa-apa yang secara langsung diterjemahkan ke dalam SQL tetapi yang memengaruhi hidrasi objek dan array. Setelah setiap klausa FROM dan JOIN Anda menentukan dengan bidang mana kelas ini harus diindeks dalam hasil. Secara default, hasil bertambah dengan kunci numerik yang dimulai dengan 0. Namun dengan INDEX BY Anda dapat menentukan kolom lain untuk menjadi kunci hasil Anda, itu benar-benar hanya masuk akal dengan bidang utama atau unik:
SELECT u.id, u.status, upper(u.name) nameUpper FROM User u INDEX BY u.id
JOIN u.phonenumbers p INDEX BY p.phonenumber
Mengembalikan array dengan jenis berikut, diindeks oleh id pengguna lalu id nomor telepon:
array
0 =>
array
1 =>
object(stdClass)[299]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 1
..
'nameUpper' => string 'ROMANB' (length=6)
1 =>
array
2 =>
object(stdClass)[298]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 2
...
'nameUpper' => string 'JWAGE' (length=5)