Cross-Label Property Access

Applies to: ✅ Data 360 SQL ✅ Tableau Hyper API

If one variable can match more than one kind of vertex, it can see every property those vertices have. It is not limited to the label you wrote in MATCH.

The label decides which tables item can match. It does not limit which properties item can use.

A Data 360 object has fields. The graph’s PROPERTIES clause exposes some of those fields, sometimes under different names. MATCH, WHERE, and COLUMNS use the exposed property names.

Add LABEL entity to the customer, order, and product vertex tables in the commerce graph. Then one variable can match any of them.

1WITH pg AS PROPERTY GRAPH (...)
2SELECT * FROM GRAPH_TABLE(pg
3    MATCH (item:entity)
4    COLUMNS (
5        item.individualId,
6        item.orderId,
7        item.productId,
8        item.name
9    )
10) AS gt;

For illustration, the vertex tables contain these records.

Data 360 objectExample values
ssot__Individual__dlm('I-100', 'Alex')
ssot__SalesOrder__dlm('O-100', 'Order 100')
ssot__GoodsProduct__dlm('P-100', 'Trail Shoes')

(item:entity) matches all three. item can use individualId, orderId, productId, and name. A property the current record doesn’t have comes back as NULL.

individualIdorderIdproductIdname
I-100NULLNULLAlex
NULLO-100NULLOrder 100
NULLNULLP-100Trail Shoes

item.productId is valid because a product can supply it. On Alex’s row it is NULL because that row is a customer, not because the field is empty. Individual and order rows return NULL for that column.

A NULL here doesn’t always mean the object field is empty. It can mean this row is a different vertex type. To see only products, use (item:product).

item.* returns every property across all matchable element tables, so the result can have more columns than any one DMO. The star isn’t limited to the label in the pattern.

Related Documentation