Es-hive-hiveql-joins

提供:Dev Guides
移動先:案内検索

HiveQL-選択-結合

UNIRSE unacláusulaque se utiliza para combinar camposespecíficosde dos tablas mediante valores comunes a cada uno de ellos。 コンビナーの登録簿は、データベースのタブに登録されています。 Esmáso menosはSQLに似ています。

シンタクシス

join_table:

   table_reference JOIN table_factor [join_condition]
   | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference
   join_condition
   | table_reference LEFT SEMI JOIN table_reference join_condition
   | table_reference CROSS JOIN table_reference [join_condition]

エジェプロ

バモスは実用的であり、継続的なフィギュランです。 タブラ・デノミナダ・クライアントのシギエンテを考慮してください。

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
| 1  | Ramesh   | 32  | Ahmedabad | 2000.00  |
| 2  | Khilan   | 25  | Delhi     | 1500.00  |
| 3  | kaushik  | 23  | Kota      | 2000.00  |
| 4  | Chaitali | 25  | Mumbai    | 6500.00  |
| 5  | Hardik   | 27  | Bhopal    | 8500.00  |
| 6  | Komal    | 22  | MP        | 4500.00  |
| 7  | Muffy    | 24  | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

思慮深いタブラペディドスデラシギエンテマネラ:

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 |           3 | 3000   |
| 100 | 2009-10-08 00:00:00 |           3 | 1500   |
| 101 | 2009-11-20 00:00:00 |           2 | 1560   |
| 103 | 2008-05-20 00:00:00 |           4 | 2060   |
+-----+---------------------+-------------+--------+

ヘイ・ディフェレンテス・コンポシナシオネス・ダド・デ・ラ・シギエンテ・マネラ:

  • ユニバースA
  • COMBINACIÓNEXTERNA IZQUIERDA
  • COMBINACIÓNEXTERNA DERECHA
  • コンビナシエンエクステルナコンプリータ

ユニバースA

クラウスラは、さまざまなタブラのレビュロスロスレジスタを組み合わせて使用​​します。 UNIESE es la misma que en OUTER JOIN en SQL Unascondicióndecombinaciónes la de ser elevado mediante las claves primarias y las claves externas de las tablas。

顧客相談とタブラとレキュペラの登録に関する相談:

hive> SELECT c.ID, c.NAME, c.AGE, o.AMOUNT
   > FROM CUSTOMERS c JOIN ORDERS o
   > ON (c.ID = o.CUSTOMER_ID);

コンサルティング会社のエル・エキシト・デ・ラ・エジュシオン、ラ・シギエンテ・レスペスタ:

+----+----------+-----+--------+
| ID | NAME     | AGE | AMOUNT |
+----+----------+-----+--------+
| 3  | kaushik  | 23  | 3000   |
| 3  | kaushik  | 23  | 1500   |
| 2  | Khilan   | 25  | 1560   |
| 4  | Chaitali | 25  | 2060   |
+----+----------+-----+--------+

COMBINACIÓNEXTERNA IZQUIERDA

La HiveQL LEFT OUTER JOIN devuelve todas las filas de la tabla de la izquierda、incluso si no hay同時偶然en la tabla de la derecha。 Esto significa que si lacláusulaON ON con con con 0(cero)los registros de la tabla de la derecha、aúndevuelve una fila en el resultado、pero con un valor NULL en cada columna de la tabla de la derecha。

UN LEFT JOINデヴュルブ・トドス・ロス・バロレス・デ・ラ・タブラ・デ・ラ・イスキエルダ、マス・エル・バロール・デ・ラ・タブラ・デ・ラ・デレチャ、o NULL en caso de no coincidir predicado decombinación。

ラ・コンサルタ・シギエンテ・デムエストラLEFT OUTER JOIN entre el cliente y el orden las tablas:

hive> SELECT c.ID, c.NAME, o.AMOUNT, o.DATE
   > FROM CUSTOMERS c
   > LEFT OUTER JOIN ORDERS o
   > ON (c.ID = o.CUSTOMER_ID);

コンサルティング会社のエル・エキシト・デ・ラ・エジュシオン、ラ・シギエンテ・レスペスタ:

+----+----------+--------+---------------------+
| ID | NAME     | AMOUNT | DATE                |
+----+----------+--------+---------------------+
| 1  | Ramesh   | NULL   | NULL                |
| 2  | Khilan   | 1560   | 2009-11-20 00:00:00 |
| 3  | kaushik  | 3000   | 2009-10-08 00:00:00 |
| 3  | kaushik  | 1500   | 2009-10-08 00:00:00 |
| 4  | Chaitali | 2060   | 2008-05-20 00:00:00 |
| 5  | Hardik   | NULL   | NULL                |
| 6  | Komal    | NULL   | NULL                |
| 7  | Muffy    | NULL   | NULL                |
+----+----------+--------+---------------------+

COMBINACIÓNEXTERNA DERECHA

La HiveQLCOMBINACIÓNEXTERNA DERECHAデベラブトダスラスフィラスデラタブラデラデレチャ、インクルードsi no hay偶然の一致とラタブラデライスキエルダ。 Si lacláusulaON一致con 0(セロ)los registros de la tabla de la izquierda、laUniónsigue siendo devuelve una fila en el resultado、pero con un valor NULL en cada columna de la tabla de la izquierda。

エル・デレチョデ・デヴロフ・トドス・ロス・バロレス・デ・ラ・タブラ・デ・ラ・デレチャ、マース・ロス・バロレス・デ・ラ・タブラ・デ・ラ・イスキエルダ、o NULL en caso de no coincidir predicado decombinación。

ラ・コンサルタ・シギエンテ・デムエストラ・コンビナシオン・エクスターナ・デレチャー・エンター・ラス・タブラス・クライアントズ・アンド・ペディドス

hive> SELECT c.ID, c.NAME, o.AMOUNT, o.DATE
   > FROM CUSTOMERS c
   > RIGHT OUTER JOIN ORDERS o
   > ON (c.ID = o.CUSTOMER_ID);

コンサルティング会社のエル・エキシト・デ・ラ・エジュシオン、ラ・シギエンテ・レスペスタ:

+------+----------+--------+---------------------+
| ID   | NAME     | AMOUNT | DATE                |
+------+----------+--------+---------------------+
| 3    | kaushik  | 3000   | 2009-10-08 00:00:00 |
| 3    | kaushik  | 1500   | 2009-10-08 00:00:00 |
| 2    | Khilan   | 1560   | 2009-11-20 00:00:00 |
| 4    | Chaitali | 2060   | 2008-05-20 00:00:00 |
+------+----------+--------+---------------------+

コンビナシエンエクステルナコンプリータ

La HiveQL FULL OUTER JOIN combina los registros tanto de la izquierda y la derecha external tablas que cumplan lacondicióndecombinación。 タブラ・コンティエン・トドス・ロス・レジストス・デ・ラス・タブラス、オ・レナ・デ・バロレス、ニューロス・パラ・パルティドス・パーディドス・エン・クアルキエ・ラド。

La siguiente consulta muestra FULL OUTER JOIN entre el cliente y el orden las tablas:

hive> SELECT c.ID, c.NAME, o.AMOUNT, o.DATE
   > FROM CUSTOMERS c
   > FULL OUTER JOIN ORDERS o
   > ON (c.ID = o.CUSTOMER_ID);

コンサルティング会社のエル・エキシト・デ・ラ・エジュシオン、ラ・シギエンテ・レスペスタ:

+------+----------+--------+---------------------+
| ID   | NAME     | AMOUNT | DATE                |
+------+----------+--------+---------------------+
| 1    | Ramesh   | NULL   | NULL                |
| 2    | Khilan   | 1560   | 2009-11-20 00:00:00 |
| 3    | kaushik  | 3000   | 2009-10-08 00:00:00 |
| 3    | kaushik  | 1500   | 2009-10-08 00:00:00 |
| 4    | Chaitali | 2060   | 2008-05-20 00:00:00 |
| 5    | Hardik   | NULL   | NULL                |
| 6    | Komal    | NULL   | NULL                |
| 7    | Muffy    | NULL   | NULL                |
| 3    | kaushik  | 3000   | 2009-10-08 00:00:00 |
| 3    | kaushik  | 1500   | 2009-10-08 00:00:00 |
| 2    | Khilan   | 1560   | 2009-11-20 00:00:00 |
| 4    | Chaitali | 2060   | 2008-05-20 00:00:00 |
+------+----------+--------+---------------------+