मेरे पास दो टेबल हैं:

तालिका: विज्ञापन फ़ील्ड: आईडी, कीमत

टेबल: कारें फ़ील्ड: आईडी, ad_id, वर्ष

मैं कारों द्वारा परिणामों का आदेश देने में सक्षम होना चाहता हूं। वर्ष - हालांकि सभी परिणामों की कारों की तालिका में प्रविष्टि नहीं होगी, अर्थात कुछ परिणामों में केवल विज्ञापनों में प्रविष्टियां हो सकती हैं।

फिलहाल प्रविष्टियों के बिना परिणाम मेरे "कार द्वारा आदेश। वर्ष एएससी, विज्ञापन। मूल्य एएससी" खंड द्वारा पहले लौटाए जा रहे हैं, मुझे ऐसे परिणाम चाहिए जिनमें कार प्रविष्टियां नहीं हैं जो परिणामों के बाद दिखाई दें।

कोई विचार मैं इस ORDER BY क्लॉज के साथ कैसे कर सकता हूं?

धन्यवाद,

0
Jason 1 मार्च 2011, 22:07
विज्ञापनों में छँटाई का क्षेत्र क्या है
 – 
Tassadaque
1 मार्च 2011, 22:11
फिर प्रश्न में order by cars.price DESC क्यों लिखा है?
 – 
Mark Byers
1 मार्च 2011, 22:16
2
तालिकाओं की आपकी परिभाषा के अनुसार कारों का मूल्य फ़ील्ड भी नहीं होता है
 – 
nathan gonzalez
1 मार्च 2011, 22:18
@ मार्क, नाथन - इसे देखकर कई घंटों तक मुझे गलत टाइपिंग मिली है, बस सवाल अपडेट किया गया है।
 – 
Jason
1 मार्च 2011, 22:25

3 जवाब

सबसे बढ़िया उत्तर

आप निम्न के जैसा क्लॉज द्वारा ऑर्डर का उपयोग कर सकते हैं:

ORDER BY cars.id IS NULL ASC, cars.year ASC, ads.price ASC

यह उन पंक्तियों को रखेगा जहां cars.id पहले शून्य नहीं है, अवरोही मूल्य के आधार पर क्रमबद्ध किया गया है। फिर बाद में वे पंक्तियाँ होंगी जहाँ cars.id शून्य है, जिसे अवरोही मूल्य के आधार पर भी क्रमबद्ध किया जाता है।

यह आपके प्रश्न से मुझे पूरी तरह से स्पष्ट नहीं है कि आप क्या आदेश चाहते हैं, इसलिए आपको अपनी आवश्यकताओं के अनुरूप इस उत्तर को थोड़ा सा समायोजित करना पड़ सकता है।

1
Mark Byers 1 मार्च 2011, 22:32
+1। लेकिन शायद यह cars.id IS NULL ASC होना चाहिए, न कि DESC (वह चाहता है कि वे कार्ड वाले विज्ञापनों के बाद दिखाई दें)
 – 
a1ex07
1 मार्च 2011, 22:19

दो चुनिंदा कमांड का उपयोग करें .. पहला उन मानों का चयन करता है जिनमें प्रविष्टियां हैं और उन्हें ऑर्डर करता है .. दूसरा बिना किसी प्रविष्टि वाले मानों का चयन करता है और उन्हें आदेश देता है फिर परिणामों में शामिल होता है ..

0
Majd 1 मार्च 2011, 22:14
order by ifnull(year,'1/1/2099'), price
0
nathan gonzalez 1 मार्च 2011, 22:16
क्या वह दोनों तालिकाओं में प्रविष्टियों के साथ रिकॉर्ड नहीं रखेगा?
 – 
JNK
1 मार्च 2011, 22:11
IsNull MySQL में थोड़ा अलग व्यवहार करता है। आप यहां Coalesce का उपयोग करना चाहेंगे बजाय।
 – 
Joe Stefanelli
1 मार्च 2011, 22:13
@joe, इसके बजाय ifnull का उपयोग करके मुझे एहसास हुआ कि यह MySQL था।
 – 
nathan gonzalez
1 मार्च 2011, 22:14