مرجع لغة استعلام Azure Digital Twins: عبارة JOIN
يحتوي هذا المستند على معلومات مرجعية حول بند JOINللغة استعلام Azure Digital Twins.
يتم استخدام العبارة في لغة استعلام Azure Digital Twins كجزء من العبارة FROM عندما تريد الاستعلام JOIN لاجتياز الرسم البياني للتوائم الرقمية في Azure.
هذه الفقرة اختيارية أثناء الاستعلام.
بناء الجملة الأساسية: انضم ... ذات الصله
نظرا لأن العلاقات في Azure Digital Twins هي جزء من توائم رقمية، وليست كيانات مستقلة، RELATED يتم استخدام الكلمة الأساسية في JOIN الاستعلامات للإشارة إلى مجموعة العلاقات من نوع معين من مجموعة التوائم (يتم تحديد النوع باستخدام حقل العلاقة من تعريف DTDL الخاص name به). يمكن تعيين اسم مجموعة مجموعة داخل الاستعلام.
يجب أن يستخدم الاستعلام بعد ذلك العبارة لتحديد التوأم أو التوائم المحددة التي يتم استخدامها لدعم استعلام العلاقة، والذي يتم عن طريق التصفية على قيمة التوأم 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ثوان في استعلام واحد ، مما يسمح باجتياز مستويات متعددة من العلاقات في وقت واحد.
بناء الجملة
--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، وتحتوي كل لوحة إضاءة على العديد من المصابيح الكهربائية. يحصل الاستعلام على جميع المصابيح الكهربائية الموجودة في 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.
لمزيد من المعلومات، راجع الأقسام التالية.
حد العمق خمسة
يقتصر عمق العبور Graph على خمسة 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 الجملة، لتوضيح أي توأم (توائم) يتم استخدامه لدعم استعلام العلاقة.