Naslaginformatie over azure Digital Twins-querytaal: JOIN-component
Dit document bevat naslaginformatie over de JOIN-component voor de Azure Digital Twins-querytaal.
De JOIN
component wordt gebruikt in de Azure Digital Twins-querytaal als onderdeel van de FROM-component wanneer u een query wilt uitvoeren om de Azure Digital Twins-grafiek te doorlopen.
Deze component is optioneel tijdens het uitvoeren van query's.
Kernsyntaxis: JOIN ... AANVERWANT
Omdat relaties in Azure Digital Twins deel uitmaken van digitale dubbels, geen onafhankelijke entiteiten, wordt het RELATED
trefwoord gebruikt in JOIN
query's om te verwijzen naar de set relaties van een bepaald type uit de tweelingverzameling (het type wordt opgegeven met behulp van het veld van name
de relatie uit de DTDL-definitie). Aan de set relaties kan een verzamelingsnaam in de query worden toegewezen.
De query moet vervolgens de WHERE
component gebruiken om op te geven welke specifieke tweeling of tweelingen worden gebruikt om de relatiequery te ondersteunen. Dit wordt gedaan door te filteren op de waarde van $dtId
de bron- of doeldubbel.
Syntaxis
--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>'
Opmerking
De volgende query selecteert alle digitale dubbels die zijn gerelateerd aan de tweeling met een id van ABC
via een contains
relatie.
SELECT T, CT
FROM DIGITALTWINS T
JOIN CT RELATED T.contains
WHERE T.$dtId = 'ABC'
Meerdere JOI's
Maximaal vijf JOIN
s worden ondersteund in één query, waardoor het doorkruisen van meerdere niveaus van relaties tegelijk mogelijk is.
Syntaxis
--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>
Opmerking
De volgende query is gebaseerd op ruimten die LightPanels bevatten en elke LightPanel bevat verschillende gloeilampen. De query haalt alle gloeilampen op die zijn opgenomen in de LightPanels van kamers 1 en 2.
SELECT LightBulb
FROM DIGITALTWINS Room
JOIN LightPanel RELATED Room.contains
JOIN LightBulb RELATED LightPanel.contains
WHERE Room.$dtId IN ['room1', 'room2']
Beperkingen
De volgende limieten zijn van toepassing op query's met behulp van JOIN
.
Zie de volgende secties voor meer informatie.
Dieptelimiet van vijf
De doorkruisingsdiepte van grafieken is beperkt tot vijf JOIN
niveaus per query.
Opmerking
De volgende query illustreert het maximum aantal JOIN
componenten dat mogelijk is in een Azure Digital Twins-query. Het krijgt alle gloeilampen in Building1.
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'
Geen OUTER JOIN-semantiek
OUTER JOIN
semantiek wordt niet ondersteund, wat betekent dat als de relatie een rang van nul heeft, de hele 'rij' wordt verwijderd uit de uitvoerresultatenset.
Opmerking
Bekijk de volgende query ter illustratie van een gebouwkruising.
SELECT Building, Floor
FROM DIGITALTWINS Building
JOIN Floor RELATED Building.contains
WHERE Building.$dtId = 'Building1'
Als Building1 geen verdiepingen bevat, retourneert deze query een lege resultatenset (in plaats van één rij te retourneren met een waarde voor Gebouw en undefined
voor Verdieping).
Tweelingen vereist
Relaties in Azure Digital Twins kunnen niet worden opgevraagd als onafhankelijke entiteiten; u moet ook informatie opgeven over de brondubbel waaruit de relatie afkomstig is. Deze functionaliteit wordt opgenomen als onderdeel van het standaardgebruik JOIN
in Azure Digital Twins via het RELATED
trefwoord.
Query's met een JOIN
component moeten ook worden gefilterd op de eigenschap van $dtId
een tweeling in de WHERE
component om te verduidelijken welke tweeling(en) worden gebruikt om de relatiequery te ondersteunen.