Partilhar via


Referência de linguagem de consulta do Azure Digital Twins: cláusula JOIN

Este documento contém informações de referência sobre a cláusula JOIN para a linguagem de consulta dos Gêmeos Digitais do Azure.

A JOIN cláusula é usada na linguagem de consulta dos Gêmeos Digitais do Azure como parte da cláusula FROM quando você deseja consultar para percorrer o gráfico dos Gêmeos Digitais do Azure.

Esta cláusula é opcional durante a consulta.

Como as relações nos Gêmeos Digitais do Azure fazem parte de gêmeos digitais, não de entidades independentes, a RELATED palavra-chave é usada em JOIN consultas para fazer referência ao conjunto de relações de um determinado tipo da coleção de gêmeos (o tipo é especificado usando o campo da name relação de sua definição DTDL). O conjunto de relações pode ser atribuído um nome de coleção dentro da consulta.

A consulta deve usar a WHERE cláusula para especificar quais gêmeos específicos estão sendo usados para dar suporte à consulta de relacionamento, o que é feito filtrando o valor do gêmeo de origem ou de $dtId destino.

Sintaxe

--SELECT ...
FROM DIGITALTWINS <twin-collection-name>
JOIN <target-twin-collection-name> RELATED <twin-collection-name>.<relationship-name> <OPTIONAL: relationship-collection-name>
WHERE <twin-collection-name-OR-target-twin-collection-name>.$dtId = '<twin-id>'

Exemplo

A consulta a seguir seleciona todos os gêmeos digitais relacionados ao gêmeo com uma ID de através de ABC um contains relacionamento.

SELECT T, CT
FROM DIGITALTWINS T
JOIN CT RELATED T.contains
WHERE T.$dtId = 'ABC'

Várias JOINs

Até cinco JOINs são suportados em uma única consulta, o que permite a travessia de vários níveis de relacionamentos ao mesmo tempo.

Sintaxe

--SELECT ...
FROM DIGITALTWINS <twin-collection-name>
JOIN <relationship-collection-name-1> RELATED <twin-collection-name>.<relationship-type-1>
JOIN <relationship-collection-name-2> RELATED <twin-or-relationship-collection-name>.<relationship-type-2>

Exemplo

A consulta a seguir é baseada em Salas que contêm LightPanels, e cada LightPanel contém várias LightBulbs. A consulta obtém todas as lâmpadas contidas nos painéis de luz das salas 1 e 2.

SELECT LightBulb
FROM DIGITALTWINS Room
JOIN LightPanel RELATED Room.contains
JOIN LightBulb RELATED LightPanel.contains
WHERE Room.$dtId IN ['room1', 'room2']

Limitações

Os limites a seguir se aplicam a consultas que usam JOINo .

Para obter mais informações, consulte as seções a seguir.

Limite de profundidade de cinco

A profundidade transversal do gráfico é restrita a cinco JOIN níveis por consulta.

Exemplo

A consulta a seguir ilustra o número máximo de JOIN cláusulas possíveis em uma consulta do Azure Digital Twins. Ele recebe todas as lâmpadas no edifício1.

SELECT LightBulb
FROM DIGITALTWINS Building
JOIN Floor RELATED Building.contains
JOIN Room RELATED Floor.contains
JOIN LightPanel RELATED Room.contains
JOIN LightBulbRow RELATED LightPanel.contains
JOIN LightBulb RELATED LightBulbRow.contains
WHERE Building.$dtId = 'Building1'

Sem semântica OUTER JOIN

OUTER JOIN A semântica não é suportada, o que significa que se a relação tiver uma classificação de zero, então toda a "linha" é eliminada do conjunto de resultados de saída.

Exemplo

Considere a seguinte consulta ilustrando uma travessia de edifício.

SELECT Building, Floor
FROM DIGITALTWINS Building
JOIN Floor RELATED Building.contains
WHERE Building.$dtId = 'Building1'

Se Building1 não contiver andares, essa consulta retornará um conjunto de resultados vazio (em vez de retornar uma linha com um valor para Building e undefined para Floor).

Gêmeos necessários

As relações nos Gêmeos Digitais do Azure não podem ser consultadas como entidades independentes; Você também precisa fornecer informações sobre o gêmeo de origem do relacionamento. Essa funcionalidade é incluída como parte do uso padrão JOIN nos Gêmeos Digitais do Azure por meio da palavra-chave RELATED .

As consultas com uma JOIN cláusula também devem filtrar por qualquer propriedade de $dtId gêmeo WHERE na cláusula, para esclarecer quais gêmeos estão sendo usados para dar suporte à consulta de relacionamento.