it-swarm-es.tech

API para Union All in JDatabase Query

¿Alguien puede señalarme la documentación sobre cómo usar Union All en JDatabase Query? Gracias Mike

2
Mike H

Recuerde siempre mirar la API de Joomla si no puede encontrar nada en la documentación. UnionAll se menciona aquí:

http://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_unionAll

0
Lodder

¡Y no te olvides de Joomla! Docs :)

http://docs.joomla.org/Using_the_union_methods_in_database_queries

Aquí hay un ejemplo de los documentos.

Suponga que desea enviar el correo a todos los clientes y proveedores y que los nombres y las direcciones de correo electrónico se almacenan en tablas llamadas, como era de esperar, clientes y proveedores, respectivamente.

Esta consulta recuperará toda la información del cliente que necesitamos para la captura de correo:

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

mientras que esta consulta hará lo mismo para todos los proveedores:

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

Luego puede combinar los resultados en una sola consulta como esta:

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

El conjunto de resultados obtenido de la consulta de unión en realidad será un poco diferente de ejecutar las consultas individuales por separado porque la consulta de unión eliminará automáticamente los duplicados. Si no le importa que el conjunto de resultados pueda contener duplicados (lo que matemáticamente hablando significa que no es un conjunto), usar unionAll en lugar de union mejorará el rendimiento.

2
Dmitry Rekun