Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Składnia UNION w Cakephp

Zbyt wielu programistów próbuje ograniczyć się do funkcjonalności frameworka. NIE. Użyj tego, co zapewnia framework. Jeśli nie ma funkcji, której szukasz, to albo:

  • Zakoduj potrzebną funkcjonalność w rozszerzeniu klasy

lub

  • Niestandardowy obrót kodu w ramach struktury, aby dopasować go do swoich potrzeb.

Często programiści próbują wbić kwadratowy kołek w okrągły otwór i wykonują o wiele za dużo dodatkowej pracy, co tak naprawdę tylko komplikuje kod. Cofnij się o krok i zapytaj, dlaczego korzystasz z frameworka. Nadaje strukturę nieustrukturyzowanemu językowi. Zapewnia solidną podstawę wielokrotnego użytku, na której można zbudować aplikację. Nie ma być pudełkiem, w którym można się włożyć i być ograniczonym.

AKTUALIZACJA:Poświęciłem chwilę, aby przeczytać Złożone warunki wyszukiwania i znalazłeś odpowiedź:

$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. Jak zmienić dwa różne nagłówki kolumn istniejącej tabeli bazy danych w sqlalchemy?

  2. Przechowywanie daty i godziny w formacie UTC w PHP/MySQL

  3. Jak WSTAWIĆ ciąg znaków z pojedynczym cudzysłowem 'symbolem

  4. Zduplikowany wpis na INSERT po DELETE z tabeli w transakcji

  5. Uzyskaj pierwszą i ostatnią datę przyszłego miesiąca w MySQL