2012-01-31 17 views
6

मेरे पास रिसॉर्ट्स के लिए देशों, रिसॉर्ट्स और फ़ोटो के साथ टेबल है। प्रत्येक फोटो को एल्बम के लिए शीर्षक के रूप में चिह्नित किया जा सकता है। मैं देश आईडी और नाम, रिज़ॉर्ट आईडी और नाम और फोटो के साथ केवल शामिल डेटासेट का चयन करना चाहता हूं, अगर इसे शीर्षक के रूप में चिह्नित किया गया हो, अन्यथा - शून्य।एसक्यूएल वापसी शून्य में शामिल हो अगर मूल्य नहीं मिला

मैं निम्नलिखित करने की कोशिश की:

select 
    s.id as c_id, 
    s.name as c_name, 
    t.id as r_id, 
    t.name as r_name, 
    p.thumbnail as image, 
    p.description as desc, 
    p.is_title 
from dbo.countries s 
join dbo.resorts t on t.state=s.inc 
left outer join dbo.resorts_photo p on p.resort_id=t.inc 
where [email protected]_id 

और मैं सभी तस्वीरें की सूची मिल गया है - शीर्षक और नहीं। अगर मैं is_title दायर ('और p.is_title = 1') द्वारा फाइलिंग जोड़ रहा हूं, तो सभी रिसॉर्ट्स जिनमें फोटो शीर्षक नहीं है, परिणाम डेटास से नहीं छोड़े जाएंगे - जो मैं चाहता हूं। कहां खंड की अपेक्षा अपनी शामिल हों हालत में

c_id c_name  r_id r_name image desc is_title 
2 Australia 17 Adelaida 0xXXXX NULL 1 
2 Australia 178 BB Rief 0xXXXX blah 1 
2 Australia 160 Brum  NULL NULL NULL 

उत्तर

16

अतिरिक्त विधेय (रों) शामिल करें, ताकि वे करने के लिए पूरी पंक्ति का कारण नहीं है:

मैं बस की तरह कुछ (अंतिम पंक्ति देखें) प्राप्त करना चाहते हैं हटाया जाना चाहिए:

LEFT OUTER JOIN dbo.resorts_photo AS p 
ON p.resort_id = t.inc 
AND p.is_title = 1 
संबंधित मुद्दे