sql - how to do inner join and right outer join in the same query -
मैं इन 3 टेबल है:
- FeatureTbl (FeatureId (पी), FeatureName) < / li>
- ParameterTbl (ParameterId (पी), ParameterName)
- Map_Parameter_To_Feature (mapId (पी), FeatureId (FK), ParameterId (FK))
मैं LINQ के लिए निम्न एसक्यूएल परिवर्तित करना चाहते हैं:
<कोड> का चयन करें FeatureTbl.FeatureId, FeatureTbl.FeatureName, Map_Parameter_To_Feature.ParameterId, ParameterTbl.ParameterName ParameterTbl भीतर से शामिल हों Map_Parameter_To_Feature पर ParameterTbl.ParameterId = Map_Parameter_To_Feature.ParameterId सही बाहरी शामिल हों FeatureTbl पर Map_Parameter_To_Feature.FeatureId = FeatureTbl.FeatureId
इसके बाद के संस्करण क्वेरी निम्नलिखित परिणाम देता है
<कोड> FeatureId, FeatureName, ParameterId, ParameterName 1 करतब एक शून्य शून्य 2 करतब बी 10 परम एक्स 3 करतब बी 10 परम Y 4 करतब सी शून्य शून्य
मैं निम्नलिखित LINQ लिखा: <पूर्व clas रों = "lang-कोई तिथि नहीं prettyprint-ओवरराइड"> <कोड> (context.ParameterTbls में पी से mp2f context.Map_Parameter_To_Feature में p.ParameterId पर शामिल होने के बराबर होती है mp2f.ParameterId mp2f.FeatureId पर context.FeatureTbls में च में शामिल होने में f.FeatureId के बराबर होती है desiredresult.DefaultIfEmpty में आर से desiredresult () नई चयन {r.FeatureId, r.FeatureName, mp2f.ParameterId, p.ParameterName});
लेकिन मैं इस परिणाम मिलता है
<कोड> FeatureId, FeatureName, ParameterId, ParameterName 2 करतब बी 10 परम एक्स 3 feat बी 10 परम Y
मैं LINQ करने के लिए ऊपर एसक्यूएल परिवर्तित कर सकते हैं?
LINQ एक सही ऑपरेटर में शामिल होने नहीं है, लेकिन आप इसे फिर से लिखने के रूप में एक बाएं में शामिल हो। ParameterTbls संदर्भ में mp2f में शामिल हैं। Map_Parameter_To_Feature p.ParameterId पर mp2f.ParameterId के बराबर है नया {mp2f.FeatureId, p.ParameterId, p.ParameterName}) पर f.FeatureId mp.FeatureId के बराबर है ps में पी में ps.DefaultIfEmpty () का चयन करें नया {f.FeatureId, f.FeatureName, null == p.ParameterId? (Int?) नल: p.ParameterId, null == p.ParameterName? Null: p.ParameterName}
Comments
Post a Comment