Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sintaks UNION di Cakephp

Terlalu banyak pembuat kode mencoba membatasi diri pada fungsionalitas kerangka kerja. JANGAN. Gunakan apa yang disediakan kerangka kerja. Jika tidak memiliki fungsi yang Anda cari, maka:

  • Kodekan fungsionalitas yang Anda butuhkan ke dalam ekstensi kelas

atau

  • Ubah kode dalam kerangka kerja sesuai kebutuhan Anda.

Seringkali, pengembang mencoba memalu pasak persegi ke dalam lubang bundar dan akhirnya melakukan terlalu banyak pekerjaan ekstra yang benar-benar hanya membuat kode menjadi rumit. Ambil langkah mundur dan tanyakan mengapa Anda menggunakan kerangka kerja untuk memulai. Ini membawa struktur ke bahasa yang tidak terstruktur. Ini memberikan fondasi kokoh yang dapat digunakan kembali untuk membangun aplikasi Anda. Itu tidak dimaksudkan untuk menjadi kotak untuk menempatkan diri Anda dan dibatasi.

PEMBARUAN:Saya meluangkan waktu sebentar untuk membaca Kondisi Pencarian Kompleks dan temukan jawaban Anda:

$joins = array(
    array(
        'table' => 'test_twos',
        'alias' => 'TestTwo',
        'type' => 'LEFT',
        'conditions' => array(
            'TestTwo.id = TestOne.id',
        )
    ),
    array(
        'table' => 'test_threes',
        'alias' => 'TestThree',
        'type' => 'LEFT',
        'conditions' => array(
        'TestThree.id = TestOne.id',
    )
    )
);

$dbo = $this->getDataSource();
$subQuery = $dbo->buildStatement(
    array(
        'fields' => array('*'),
        'table' => $dbo->fullTableName($this),
        'alias' => 'TestOne',
        'limit' => null,
        'offset' => null,
        'joins' => $joins,
        'conditions' => null,
        'order' => null,
        'group' => null
    ),
    $this->TestOne
);
$query = $subQuery;

$query .= ' UNION ';
$joins = array(
    array(
        'table' => 'test_twos',
        'alias' => 'TestTwo',
        'type' => 'LEFT',
        'conditions' => array(
            'TestTwo.id = TestOne.id',
        )
    ),
    array(
        'table' => 'test_threes',
        'alias' => 'TestThree',
        'type' => 'RIGHT',
        'conditions' => array(
        'TestThree.id = TestOne.id',
        )
    )
);

$dbo = $this->getDataSource();
$subQuery = $dbo->buildStatement(
    array(
    'fields' => array('*'),
    'table' => $dbo->fullTableName($this),
    'alias' => 'TestOne',
    'limit' => null,
    'offset' => null,
    'joins' => $joins,
    'conditions' => null,
    'order' => null,
    'group' => null
    ),
    $this->TestOne
);

$query .= $subQuery;

pr($query);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP BY cap waktu setiap 15 menit termasuk entri yang hilang

  2. MySQL:Perbarui beberapa kolom jika nilainya sama dengan

  3. MySQL - Referensi kolom agregat di mana klausa

  4. Bagaimana cara mendapatkan jumlah baris yang terpengaruh dengan SQL Alchemy?

  5. Rails ActiveRecord menangani kolom id yang bukan kunci utama