Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cú pháp UNION trong Cakephp

Quá nhiều người viết mã cố gắng tự giới hạn chức năng của một khuôn khổ. ĐỪNG. Sử dụng những gì mà khuôn khổ cung cấp. Nếu nó không có chức năng mà bạn tìm kiếm, thì hãy:

  • Mã chức năng bạn cần vào tiện ích mở rộng lớp học

hoặc

  • Tùy chỉnh quay mã trong khuôn khổ để phù hợp với nhu cầu của bạn.

Thông thường, các nhà phát triển cố gắng đóng một cái chốt hình vuông vào một lỗ tròn và làm quá nhiều công việc bổ sung mà chỉ thực sự làm cho mã trở nên phức tạp. Lùi lại một bước và hỏi tại sao bạn lại sử dụng framework để bắt đầu. Nó mang lại cấu trúc cho một ngôn ngữ phi cấu trúc. Nó cung cấp nền tảng có thể tái sử dụng vững chắc để xây dựng ứng dụng của bạn. Nó không phải là một cái hộp để đặt bạn vào và bị giới hạn.

CẬP NHẬT:Tôi đã dành một phút để đọc Điều kiện Tìm Phức tạp và tìm thấy câu trả lời của bạn:

$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. Lỗi tuần tự hóa:Đã tìm thấy chốt chặn khi cố gắng lấy khóa

  2. Tại sao các số nguyên trong bộ dữ liệu hàng của cơ sở dữ liệu có hậu tố 'L'?

  3. Nhận tổng cột và sử dụng để tính toán phần trăm của tổng số (mySQL)

  4. Java + Tomcat, kết nối cơ sở dữ liệu không hoạt động?

  5. Gọi thủ tục lưu trữ MySQL trên PHP