# 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](/docs/data/data-cloud-query-guide/references/dc-sql-reference/define-property-graph.md#example-an-ecommerce-graph). Then one variable can match any of them.

```sql
WITH pg AS PROPERTY GRAPH (...)
SELECT * FROM GRAPH_TABLE(pg
    MATCH (item:entity)
    COLUMNS (
        item.individualId,
        item.orderId,
        item.productId,
        item.name
    )
) AS gt;
```

For illustration, the vertex tables contain these records.

| Data 360 object           | Example 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`.

| individualId | orderId | productId | name        |
| ------------ | ------- | --------- | ----------- |
| I-100        | *NULL*  | *NULL*    | Alex        |
| *NULL*       | O-100   | *NULL*    | Order 100   |
| *NULL*       | *NULL*  | P-100     | Trail 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

- [Label Expressions](/docs/data/data-cloud-query-guide/references/dc-sql-reference/label-expressions.md)
- [Defining a Property Graph](/docs/data/data-cloud-query-guide/references/dc-sql-reference/define-property-graph.md)
- [Querying with GRAPH_TABLE and MATCH](/docs/data/data-cloud-query-guide/references/dc-sql-reference/graph-table-match.md)
