अधिक कुशल जुड़ने की क्वेरी की आवश्यकता है

यह लंबे समय से रहा है क्योंकि मैंने आखिरी बार डाटाबेस के साथ कुछ किया था, इसलिए मेरा ज्ञान खराब हो गया है। मेरे पास 2 एसक्यूएल टेबल हैं:

data(id, attr);
dependency(child, parent);
 #**child** and **parent** are the id from table **data**

मुझे निर्भरता तालिका में प्रविष्टियों के अनुरूप सभी attr से पूछताछ करने की आवश्यकता है। मेरा प्रयास निम्नलिखित है:

SELECT 
(SELECT data.attr FROM data WHERE data.id = child) AS child_attr,
(SELECT data.attr FROM data WHERE data.id = parent) AS parent_attr 
from dependency;

यह काम करता है लेकिन बहुत धीमा है। मुझे यकीन है कि इसमें शामिल होने के साथ ऐसा करने का एक बेहतर तरीका है लेकिन अभी तक इसके साथ नहीं आ सकता है।  क्या कोई मदद कर सकता है?

धन्यवाद,

0

2 उत्तर

आपको आवश्यक जानकारी प्राप्त करने के लिए आप निर्भरता तालिका में डेटा तालिका में दो बार शामिल हो सकते हैं:

SELECT d1.attr AS ChildAttr, d2.attr AS ParentAttr
FROM dependency AS dep
INNER JOIN data AS d1 ON dep.child = d1.id
INNER JOIN data AS d2 ON dep.parent = d2.id
1
जोड़ा
धन्यवाद, अदरक। यह तेजी से काम करता है।
जोड़ा लेखक chepukha, स्रोत

इसे इस्तेमाल करे:

SELECT t2.attr, t3.attr
FROM dependency as t1
    INNER JOIN data as t2 on t1.child = t2.id
    INNER JOIN data as t3 on t1.parent = t3.id
1
जोड़ा
+1 मुझे लगता है कि आपका समाधान अनिवार्य रूप से लिंजर जैसा ही है। लेकिन बहुत बहुत धन्यवाद।
जोड़ा लेखक chepukha, स्रोत
हां - जब मैं अपना पोस्ट कर रहा था तब लिंजर ने जाहिर तौर पर उसे पोस्ट किया था।
जोड़ा लेखक xSQL Software, स्रोत