Azure Digital Twins sorgu dili başvurusu: JOIN yan tümcesi
Bu belge, Azure Digital Twins sorgu dilinin JOIN yan tümcesine ilişkin başvuru bilgilerini içerir.
Yan JOIN
tümcesi, Azure Digital Twins grafiğinden geçiş yapmak için sorgulama yapmak istediğinizde FROM yan tümcesinin bir parçası olarak Azure Digital Twins sorgu dilinde kullanılır.
Sorgu sırasında bu yan tümce isteğe bağlıdır.
Çekirdek söz dizimi: JOIN ... İLGİLİ
Azure Digital Twins'deki ilişkiler bağımsız varlıkların değil dijital ikizlerin bir parçası olduğundan anahtar sözcük, RELATED
ikiz koleksiyonundan belirli bir türdeki ilişkiler kümesine başvurmak için sorgularda JOIN
kullanılır (tür, DTDL tanımındaki ilişkinin name
alanı kullanılarak belirtilir). İlişki kümesine sorgu içinde bir koleksiyon adı atanabilir.
Sorgunun daha sonra ilişki sorgusunu WHERE
desteklemek için hangi ikiz veya ikizlerin kullanıldığını belirtmek için yan tümcesini kullanması gerekir. Bu işlem kaynak veya hedef ikizin $dtId
değerine göre filtrelenerek gerçekleştirilir.
Sözdizimi
--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>'
Örnek
Aşağıdaki sorgu, bir ilişki aracılığıyla contains
kimliğine ABC
sahip ikizle ilişkili tüm dijital ikizleri seçer.
SELECT T, CT
FROM DIGITALTWINS T
JOIN CT RELATED T.contains
WHERE T.$dtId = 'ABC'
Birden çok JOIN
Aynı anda birden çok ilişki düzeyinin çapraz geçişini sağlayan tek bir sorguda en fazla beş JOIN
sorgu desteklenir.
Sözdizimi
--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>
Örnek
Aşağıdaki sorgu LightPanel içeren Odaları temel alır ve her LightPanel birkaç Ampul içerir. Sorgu, 1 ve 2 odalarının LightPanels içindeki tüm Ampulleri alır.
SELECT LightBulb
FROM DIGITALTWINS Room
JOIN LightPanel RELATED Room.contains
JOIN LightBulb RELATED LightPanel.contains
WHERE Room.$dtId IN ['room1', 'room2']
Sınırlamalar
Aşağıdaki sınırlar kullanan JOIN
sorgular için geçerlidir.
Daha fazla bilgi için aşağıdaki bölümlere bakın.
Derinlik sınırı beş
Graf dolaşma derinliği sorgu başına beş JOIN
düzeyle sınırlıdır.
Örnek
Aşağıdaki sorgu, Azure Digital Twins sorgusunda mümkün olan en fazla yan tümce sayısını JOIN
gösterir. Bina1'deki tüm Ampulleri alır.
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'
OUTER JOIN semantiği yok
OUTER JOIN
semantik desteklenmez; yani ilişki sıfır derecesine sahipse, "satırın" tamamı çıkış sonuç kümesinden çıkarılır.
Örnek
Bir bina geçişi gösteren aşağıdaki sorguyu göz önünde bulundurun.
SELECT Building, Floor
FROM DIGITALTWINS Building
JOIN Floor RELATED Building.contains
WHERE Building.$dtId = 'Building1'
Bina1 kat içermiyorsa, bu sorgu boş bir sonuç kümesi döndürür (Bina ve undefined
Kat için değeri olan bir satır döndürmek yerine).
İkiz gerekli
Azure Digital Twins'deki ilişkiler bağımsız varlıklar olarak sorgulanamaz; ayrıca ilişkinin geldiği kaynak ikiz hakkında da bilgi sağlamanız gerekir. Bu işlev, anahtar sözcüğü aracılığıyla Azure Digital Twins'de varsayılan JOIN
kullanımın RELATED
bir parçası olarak dahil edilir.
Yan tümcesi olan sorgular, ilişki sorgusunu desteklemek için hangi ikizlerin $dtId
kullanıldığını netleştirmek için yan tümcesindeki WHERE
herhangi bir JOIN
ikizin özelliğine göre de filtrelenmelidir.