2016-06-23 8 views
7

JOIN में चयन कॉलम को सरल बनाने के लिए ABAP के OpenSQL में कोई तरीका है जब मैं एक तालिका के सभी फ़ील्ड को पकड़ना चाहता हूं लेकिन केवल अन्य तालिका से चयनित फ़ील्ड (रों)?तालिका ए के सभी फ़ील्ड का चयन करना, लेकिन तालिका बी

उदाहरण के लिए, mysql we can simply do में:

SELECT tb1.*, tb2.b, tb2.d 
FROM  tableA tb1 
INNER JOIN tableB tb2 ON tb1.x = tb2.a 

हालांकि, OpenSQL tb1~*, tb2~b, tb2~d का चयन अनुमति देने के लिए प्रतीत नहीं होता है तो मैं इस का सहारा लेना है: बहुत बड़ी तालिकाओं के लिए

SELECT tb1.x, tb1.y, tb1.z, tb2.b, tb2.d 
FROM  tableA tb1 
INNER JOIN tableB tb2 ON tb1.x = tb2.a 

, विशेष रूप से मानक तालिकाओं, यह अनावश्यक, पढ़ने के लिए मुश्किल और बनाए रखने के लिए और अधिक परेशान हो जाता है।

क्या टीबी 1 के सभी क्षेत्रों और टीबी 2 से कुछ क्षेत्रों का चयन करने का कोई बेहतर तरीका है?

उत्तर

7

हां, यह 7.40 एसपी 08 से ओपनएसक्यूएल में संभव है। यह article देखें।

लेख से उद्धरण में यह है।

स्तंभ विशिष्टता

का चयन करें सूची में, आप 7.40, SP08 पर से वाक्य रचना DATA_SOURCE ~ * का उपयोग कर किसी डेटा स्रोत के सभी स्तंभों निर्दिष्ट कर सकते हैं। जुड़ने के साथ काम करते समय यह आसान हो सकता है।

SELECT scarr~carrname, spfli~*, scarr~url 
     FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid 
     INTO TABLE @DATA(result). 

पिछले संस्करणों में दुर्भाग्य से एक कॉलम ADBC साथ उदाहरण के लिए एक या एक से उपयोग डेटाबेस देशी एसक्यूएल के बाद एक निर्दिष्ट करने के लिए है।

+2

हा, मैंने सोचा कि मैं पहले से ही इसका इस्तेमाल कर चुका हूं। यह विशेष प्रणाली 7.40 एसपी06 पर बदल जाती है। – Lilienthal

+2

हाँ, दर्द पता है। मैं उसी सिस्टम संस्करण 7.40 एसपी06 पर हूं। :) – Jagger

संबंधित मुद्दे