مرجع لغة استعلام Azure Digital Twins: عبارة JOIN
يحتوي هذا المستند على معلومات مرجعية حول عبارة JOIN للغة استعلام Azure Digital Twins.
JOIN
يتم استخدام العبارة في لغة استعلام Azure Digital Twins كجزء من عبارة FROM عندما تريد الاستعلام لاجتياز الرسم البياني Azure Digital Twins.
هذه العبارة اختيارية أثناء الاستعلام.
بناء الجملة الأساسي: JOIN ... ذات الصله
نظرا لأن العلاقات في Azure Digital Twins هي جزء من التوائم الرقمية، وليست كيانات مستقلة، RELATED
يتم استخدام الكلمة الأساسية في JOIN
الاستعلامات للإشارة إلى مجموعة العلاقات من نوع معين من مجموعة التوأم (يتم تحديد النوع باستخدام حقل العلاقة name
من تعريف DTDL الخاص به). يمكن تعيين اسم مجموعة ضمن الاستعلام لمجموعة العلاقات.
يجب أن يستخدم الاستعلام بعد ذلك العبارة WHERE
لتحديد التوأم أو التوأم المحدد الذي يتم استخدامه لدعم استعلام العلاقة، والذي يتم عن طريق التصفية على قيمة التوأم $dtId
المصدر أو الهدف.
بناء الجملة
--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>'
مثال
يحدد الاستعلام التالي جميع التوائم الرقمية المرتبطة بالتوأم بمعرف من ABC
خلال contains
علاقة.
SELECT T, CT
FROM DIGITALTWINS T
JOIN CT RELATED T.contains
WHERE T.$dtId = 'ABC'
أسماء JOIN متعددة
يتم دعم ما يصل إلى خمسة JOIN
s في استعلام واحد، والذي يسمح باجتياز مستويات متعددة من العلاقات في وقت واحد.
بناء الجملة
--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>
مثال
يستند الاستعلام التالي إلى الغرف التي تحتوي على LightPanels، ويحتوي كل LightPanel على العديد من LightBulbs. يحصل الاستعلام على جميع LightBulbs الموجودة في LightPanels للغرف 1 و2.
SELECT LightBulb
FROM DIGITALTWINS Room
JOIN LightPanel RELATED Room.contains
JOIN LightBulb RELATED LightPanel.contains
WHERE Room.$dtId IN ['room1', 'room2']
القيود
تنطبق الحدود التالية على الاستعلامات باستخدام JOIN
.
لمزيد من المعلومات، راجع الأقسام التالية.
حد العمق خمسة
يقتصر عمق اجتياز الرسم البياني على خمسة JOIN
مستويات لكل استعلام.
مثال
يوضح الاستعلام التالي الحد الأقصى لعدد JOIN
العبارات الممكنة في استعلام Azure Digital Twins. يحصل على جميع المصابيح في المبنى 1.
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
OUTER JOIN
الدلالات غير مدعومة، مما يعني أنه إذا كانت العلاقة لها مرتبة صفر، التخلص من "الصف" بأكمله من مجموعة نتائج الإخراج.
مثال
ضع في اعتبارك الاستعلام التالي الذي يوضح اجتياز مبنى.
SELECT Building, Floor
FROM DIGITALTWINS Building
JOIN Floor RELATED Building.contains
WHERE Building.$dtId = 'Building1'
إذا لم يحتوي Building1 على طوابق، فسيرجع هذا الاستعلام مجموعة نتائج فارغة (بدلا من إرجاع صف واحد بقيمة المبنى والطابق undefined
).
التوائم المطلوبة
لا يمكن الاستعلام عن العلاقات في Azure Digital Twins ككيانات مستقلة؛ تحتاج أيضًا إلى تقديم معلومات حول التوأم المصدر الذي تأتي منه العلاقة. يتم تضمين هذه الوظيفة كجزء من الاستخدام الافتراضي JOIN
في Azure Digital Twins من خلال RELATED
الكلمة الأساسية .
يجب أيضا تصفية الاستعلامات ذات العبارة JOIN
حسب خاصية أي توأم $dtId
في WHERE
عبارة ، لتوضيح التوأم (التوأم) الذي يتم استخدامه لدعم استعلام العلاقة.