Bagaimana untuk Menyertai Subqueries dengan Doktrin 2 DBAL?

Mary-Kate Olsen
Lepaskan: 2024-10-23 23:50:29
asal
668 orang telah melayarinya

How to Join Subqueries with Doctrine 2 DBAL?

Menyertai Subqueries dengan Doctrine 2 DBAL

Pengenalan

Apabila memindahkan aplikasi Zend Framework ke Doctrine 2.5 DBAL, anda mungkin menghadapi cabaran untuk menyertai subqueries. Artikel ini bertujuan untuk menyediakan panduan komprehensif untuk isu khusus ini.

Masalahnya

Pertanyaan Zend_Db yang diberikan menampilkan subkueri untuk mendapatkan cap masa minimum untuk tinjauan pengguna tertentu. Pertanyaan utama kemudiannya menyertai subkueri ini untuk mengambil data tambahan. Matlamatnya adalah untuk meniru fungsi ini menggunakan pembina pertanyaan Doktrin 2.5.

Penyertaan Subkueri dalam Doktrin 2.5

Pada mulanya, adalah dipercayai bahawa Doktrin tidak menyokong penyertaan subkueri. Walau bagaimanapun, terdapat penyelesaiannya.

Penyelesaian

Penyelesaian adalah untuk mendapatkan SQL mentah subquery dan sertakan dalam kurungan. Sintaks gabungan menyerupai operasi gabungan biasa. Walau bagaimanapun, parameter yang digunakan dalam subkueri mesti ditakrifkan dalam pertanyaan utama.

Coretan Kod

<code class="php">$subSelect = $connection->createQueryBuilder()
    ->select(array('userSurveyID', 'MIN(timestamp) timestamp'))
    ->from('user_survey_status_entries')
    ->where('status = :status')
    ->groupBy('userSurveyID');

$select = $connection->createQueryBuilder()
    ->select($selectColNames)
    ->from('user_surveys', 'us')
    ->leftJoin('us', sprintf('(%s)', $subSelect->getSQL()), 'firstAccess', 'us.userSurveyID = firstAccess.userSurveyID')
    ->setParameter('status', UserSurveyStatus::ACCESSED)
    ->where('us.surveyID = :surveyID')
    ->setParameter('surveyID', $surveyID);</code>
Salin selepas log masuk

Kesimpulan

Penyelesaian ini membolehkan anda menyertai subkueri dalam Doktrin 2.5 DBAL . Dengan mendapatkan SQL mentah subkueri dan menetapkan parameternya dalam pertanyaan utama, anda boleh mencapai struktur pertanyaan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Subqueries dengan Doktrin 2 DBAL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!