it-swarm-vi.com

API cho Union All in Database Query

Bất cứ ai cũng có thể chỉ cho tôi tài liệu về cách sử dụng Union All trong JDatabase Query không? Cảm ơn, Mike

2
Mike H

Luôn nhớ nhìn vào API Joomla nếu bạn không thể tìm thấy bất cứ điều gì trong tài liệu. UnionAll được đề cập ở đây:

http://api.j Joomla.org/cms-3/groupes/JDatabaseQuery.html#method_union ALL

0
Lodder

Và đừng quên Joomla! Tài liệu :)

http://docs.j Joomla.org/Using_the_union_methods_in_database_queries

Đây là một ví dụ từ Tài liệu.

Giả sử rằng bạn muốn gửi thư cho tất cả khách hàng và tất cả các nhà cung cấp và rằng tên và địa chỉ email được lưu trữ trong các bảng được gọi là, không ngạc nhiên, khách hàng và nhà cung cấp, tương ứng.

Truy vấn này sẽ lấy tất cả thông tin khách hàng mà chúng tôi cần cho thư tín:

$query
    ->select('name, email')
    ->from('customers')
    ;
$mailshot = $db->setQuery($query)->loadObjectList();

trong khi truy vấn này sẽ làm tương tự cho tất cả các nhà cung cấp:

$query
    ->select('name, email')
    ->from('suppliers')
    ;
$mailshot = $db->setQuery($query)->loadObjectList();

Sau đó, bạn có thể kết hợp các kết quả thành một truy vấn duy nhất như thế này:

$query
    ->select('name, email')
    ->from('customers')
    ->union($q2->select('name , email')->from('suppliers'))
    ;
$mailshot = $db->setQuery($query)->loadObjectList();

Tập kết quả thu được từ truy vấn hợp sẽ thực sự khác một chút so với việc chạy riêng các truy vấn riêng vì truy vấn hợp sẽ tự động loại bỏ trùng lặp. Nếu bạn không nhớ rằng tập kết quả có thể chứa các bản sao (theo cách nói toán học có nghĩa là nó không phải là một tập hợp) thì sử dụng unionAll thay vì union sẽ cải thiện hiệu suất.

2
Dmitry Rekun