sql >> Databáze >  >> RDS >> Mysql

Syntaxe UNION v Cakephp

Příliš mnoho kodérů se snaží omezit na funkčnost rámce. NE Použijte to, co rámec poskytuje. Pokud nemá funkci, kterou hledáte, pak buď:

  • Zakódujte funkcionalitu, kterou potřebujete, do rozšíření třídy

nebo

  • Přizpůsobte si kód v rámci, aby vyhovoval vašim potřebám.

Vývojáři se často pokoušejí zatlouct čtvercový kolík do kulaté díry a nakonec udělají příliš mnoho práce navíc, která ve skutečnosti jen komplikuje kód. Udělejte krok zpět a zeptejte se, proč používáte rámec pro začátek. Vnáší strukturu do nestrukturovaného jazyka. Poskytuje pevný znovupoužitelný základ, na kterém lze stavět vaši aplikaci. Není to škatulka, do které se vložíte a budete omezováni.

AKTUALIZACE:Věnoval jsem chvíli přečtení Složité podmínky hledání a našli vaši odpověď:

$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. Jak mohu vložit obrázek do databáze sqlite

  2. Jak získám poslední vložené ID tabulky MySQL v PHP?

  3. Jak vybrat více řádků pomocí primárního klíče s více sloupci v MySQL?

  4. Mysql Sloupec Průměrný čas?