Mysql
 sql >> база данни >  >> RDS >> Mysql

Синтаксис UNION в Cakephp

Твърде много програмисти се опитват да се ограничат до функционалността на рамката. НЕ. Използвайте това, което предоставя рамката. Ако няма функционалността, която търсите, тогава:

  • Кодирайте необходимата ви функционалност в разширение на клас

или

  • Персонализирайте кода в рамките на рамката, за да отговаря на вашите нужди.

Често разработчиците се опитват да забият квадратно колче в кръгла дупка и се оказва, че вършат твърде много допълнителна работа, която наистина само усложнява кода. Направете крачка назад и попитайте защо използвате рамката като начало. Той внася структура в неструктуриран език. Той осигурява солидна основа за многократна употреба, върху която да изградите вашето приложение. Не е предназначен да бъде кутия, в която да се поставите и да бъдете ограничавани.

АКТУАЛИЗАЦИЯ:Отделих минута, за да прочета Условия за комплексно намиране и намери отговора си:

$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. Как да инсталирате MySQL c++ драйвер на Windows

  2. Не може да се свърже с localhost с помощта на MySQLdb на Python

  3. Кога НЕ трябва да използвам mysql_real_escape_string

  4. Инсталирайте mysqldb на снежен леопард

  5. експортирайте големи данни за таблици в .csv файл в c# приложения за Windows