sql >> Database >  >> RDS >> Mysql

UNION-syntaxis in Cakephp

Te veel programmeurs proberen zich te beperken tot de functionaliteit van een framework. NIET DOEN. Gebruik wat het raamwerk biedt. Als het niet de functionaliteit heeft die u zoekt, dan ofwel:

  • Codeer de functionaliteit die je nodig hebt in een klasse-extensie

of

  • Aangepaste draai de code binnen het raamwerk om aan uw behoeften te voldoen.

Vaak proberen ontwikkelaars een vierkante pen in een rond gat te slaan en eindigen ze met veel te veel extra werk dat de code eigenlijk alleen maar ingewikkelder maakt. Doe een stap terug en vraag waarom u het raamwerk gebruikt om mee te beginnen. Het brengt structuur in een ongestructureerde taal. Het biedt een solide herbruikbare basis om uw toepassing op te bouwen. Het is niet bedoeld als een hokje om jezelf in te stoppen en te beperken.

UPDATE:ik heb even de tijd genomen om Complexe zoekvoorwaarden en vond je antwoord:

$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. Hoe een mysql-database bijwerken via sms-berichten?

  2. Boto3 gebruiken om te communiceren met amazon Aurora op RDS

  3. Java 6-functie werkt in opdrachtregel, maar werkt niet op Oracle-server (AES 256)

  4. Geekbench 3 gebruiken om de prestaties van de databaseserver te evalueren