2013-12-09 3 views
5

मेरे पास 2 टेबल/कोई संस्था के साथ इकाइयां हैं। मैं पार लिए जा सकते हैं जेपीएजेपीए - एसोसिएशन के बिना 2 टेबल में शामिल रहें

FROM A as a, B as b WHERE b.col1=a.col1 

में मिलती है मैं एक बाएँ में शामिल होने के लिए प्रदर्शन कर सकते हैं कैसे?

मैं एक से सभी मूल्यों चाहते हैं और बी मूल्यों जहां संभव हो और शून्य छोड़ के साथ उन्हें भरने जहाँ कोई बी

काम नहीं करता है:

FROM A as a LEFT JOIN B as b WHERE b.col1=a.col1 

पथ शामिल होने की उम्मीद है!

अमान्य पथ: 'b.col1'

उत्तर

-3

यह निम्न क्वेरी के साथ जेपीए के साथ संभव है:

FROM A as a, B as b WHERE b.col1=a.col1 OR b.col1 IS NULL 
+1

एक वाम के समान नहीं है यही कारण है कि शामिल हों। मान लें कि आपके पास b.col1 = 3 है और कोई a.col1 = 3 नहीं है। आपकी क्वेरी इस पंक्ति को वापस नहीं करेगी, लेकिन एक बाएं जॉइन इसे वापस कर देगा। –

4

आप ऐसा नहीं कर सकते जेपीए में, जब तक संस्थाओं के बीच कोई संबंध नहीं है के रूप में।

समाधान:

  1. उपयोग मूल निवासी प्रश्नों।
  2. उनके बीच एक रिश्ता जोड़ें (अंत में एक अप्रत्यक्ष आलसी एक)। अप्रत्यक्ष के साथ मेरा मतलब कुछ है: ए छद्मता जानता है, छद्म एंटीटी बी जानता है (लेकिन रिश्तेदार मालिक इकाई बी है), बी छद्म ज्ञान जानता है।
संबंधित मुद्दे