में मैं एक प्रश्न अस्तित्व खंड का उपयोग करता है चलाने के लिए कोशिश कर रहा हूँ:स्पार्क प्रतिस्थापन मौजूद है और
select <...>
from A, B, C
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
exists (select A.ID from <subquery 1>) or
exists (select A.ID from <subquery 2>)
दुर्भाग्य से, इस का समर्थन किया जाना प्रतीत नहीं होता है। मैं भी एक IN
खंड के साथ EXISTS
खंड की जगह की कोशिश की है:
select <...>
from A, B, C
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID in (select ID from ...) or
A.ID in (select ID from ...)
दुर्भाग्य से, यह भी IN
खंड असमर्थित हो रहा है।
कोई भी विचार जो मैं एक SQL क्वेरी लिख सकता हूं जो वांछित परिणाम प्राप्त करता है? मैं सिद्धांत रूप में एक और JOIN
और एक UNION
के रूप में दूसरा OR
खंड के रूप में WHERE
खंड मॉडल सकता है, लेकिन यह सुपर अनाड़ी लगता है ..
संपादित करें: संभव समाधान की एक संख्या लिस्टिंग।
समाधान 1
select <...>
from A, B, C
(select ID from ...) as exist_clause_1,
(select ID from ...) as exist_clause_2,
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID = exist_clause_1.ID or
A.ID = exist_clause_2.ID
समाधान 2
select <...>
from A, B, C
((select ID from ...) UNION
(select ID from ...)
) as exist_clause,
where
A.FK_1 = B.PK and
A.FK_2 = C.PK and
A.ID = exist_clause.ID
नहीं अपने पहले ही क्वेरी टेम्पलेट फार्म की कॉल मौजूद है 'मौजूद है)' (E.ID ई जहां E.ID = A.ID से चुनें) करना चाहिए? –
philipxy