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.
Sintaxe principal: JOIN ... RELACIONADOS
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 JOIN
s 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 JOIN
o .
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.