web-dev-qa-db-ja.com

データベースクエリのユニオンオールのAPI

JDatabaseクエリでUnion Allを使用する方法に関するドキュメントを誰かに教えてもらえますか?ありがとう、マイク

2
Mike H

ドキュメントに何も見つからない場合は、Joomla APIを必ず確認してください。 UnionAllはここで言及されています:

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

0
Lodder

そして、Joomlaを忘れないでください!ドキュメント:)

http://docs.joomla.org/Using_the_union_methods_in_database_queries

ドキュメントからの例です。

すべての顧客とすべてのサプライヤーにメールを送信し、名前と電子メールアドレスが、当然のことながら、顧客とサプライヤーというテーブルにそれぞれ格納されているとします。

このクエリは、メールショットに必要なすべての顧客情報を取得します。

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

このクエリはすべてのサプライヤーに対して同じことを行いますが、

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

次に、結果を次のような単一のクエリに結合できます。

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

ユニオンクエリは重複を自動的に排除するため、ユニオンクエリから取得される結果セットは、実際には個々のクエリを個別に実行する場合とは少し異なります。結果セットに重複が含まれていてもかまわない場合(数学的にはセットではないことを意味します)、unionAllの代わりにunionを使用するとパフォーマンスが向上します。

2
Dmitry Rekun