BigObject supports LEFT JOIN and INNER JOIN. For performance reason, it is required to create keys beforehand in dimension tables.

Besides, BigObject supports implicit LEFT JOIN and INNER JOIN in simpler syntax if star schema is explicitly represented in table column names, as described in section Table Object and Data Type.


Implicit LEFT JOIN

The user can select columns in dimension tables directly in a SELECT without explicit LEFT JOIN clause if star schema is explicitly related in tables. For example, the following statement can retrieve each customer's gender, which is contained in Customer table, for each record in sales table.

SELECT Customer.gender FROM sales

The LEFT JOIN operation is performed implicitly in BigObject. In other words, the above SELECT statement is equivalent to the following SELECT with LEFT JOIN clause.

SELECT Customer.gender FROM sales LEFT JOIN Customer on sales.`Customer.id` = Customer.`id`

Implicit INNER JOIN

The user can select columns in dimension tables directly in a SELECT without explicit INNER JOIN clause if star schema is explicitly related in tables. For example, the following statement can retrieve each customer's gender for those records in sales table whose customer id is matched in Customer table.

SELECT Customer.gender FROM sales, Customer

The INNER JOIN operation is performed implicitly in BigObject. In other words, the above SELECT statement is equivalent to the following SELECT with INNER JOIN clause.

SELECT Customer.gender FROM sales INNER JOIN Customer on sales.`Customer.id` = Customer.`id`