2010-07-12 23 views
8

मैं निम्नलिखित एसक्यूएल है और यह त्रुटि अस्पष्ट स्तंभ नाम 'आईडी'अस्पष्ट स्तंभ नाम

select tbl_registration.*, tbl_ebp.name as ebp_name, tbl_Users.id as user_id, tbl_ebp.id as linked_ebp_id 
from tbl_registration 
left outer join tbl_ebp on tbl_ebp.id = tbl_registration.ebp_id 
left outer join tbl_users on tbl_registration.email = tbl_users.username 
where id = [PARAM]p_id 

मैं इस पर कुछ लेख पढ़ा है फेंकता है, लेकिन मेरे कोड के लिए एक काम समाधान नहीं मिल रहा। किसी भी मदद की बहुत सराहना की।

उत्तर

21

आपका कहां खंड आईडी अधिक विशिष्ट होने की जरूरत है, तालिका नाम शामिल हैं:

WHERE table.id = [PARAM]p_id 

दो बातें एक ही नाम है, तो यह वह जगह है जहाँ अपने एसक्यूएल में में अस्पष्टता चरणों इस मामले एकाधिक तालिकाओं में। "आईडी" कॉलम है।

एसक्यूएल में स्तंभ नामों को असंबद्ध करने की खुफिया जानकारी है यदि कॉलम नाम स्पर्श किए जाने वाले तालिकाओं के वर्तमान सेट में अद्वितीय है - इसलिए अधिकांश समय आपको तालिका नामों के साथ कॉलम नामों को उपसर्ग करने की आवश्यकता नहीं होती है।

+2

निजी तौर पर मैं हमेशा निर्दिष्ट करने के लिए जो तालिका क्षेत्र से आया है पसंद करते हैं जगह ले ली है। इससे रखरखाव बहुत आसान हो जाता है खासकर जब जटिल रिपोर्टिंग प्रकार क्वेरी से निपटने के लिए जो दस अलग-अलग तालिकाओं में शामिल होता है। इस तरह से मुझे पता है कि क्षेत्र कहां से आया है, यह वह है जो मुझे दस अलग-अलग तालिकाओं की संरचना को देखने के बिना एक समस्या दे रहा है, यह पता लगाने के लिए कि यह कहां से आया था। – HLGEM

6

अधिकतर एक से अधिक तालिका में आईडी नामक कॉलम होता है; जहां तालिका

4

में तालिका उपसर्ग का उपयोग करें, क्या आपने क्लॉज में आईडी कॉलम नाम उपसर्ग करने का प्रयास किया है?

2

यह आपके जहां खंड में "आईडी" का जिक्र कर रहा है। आपको यह निर्दिष्ट करने की आवश्यकता है कि कौन सी तालिका का "आईडी" फ़िल्टर करना चाहिए।

0

मैं अपने कोड

select *, tbl_ebp.name as ebp_name, tbl_Users.id as user_id, tbl_ebp.id as linked_ebp_id 
from tbl_registration 
left outer join tbl_ebp on tbl_ebp.id = tbl_registration.ebp_id 
left outer join tbl_users on tbl_registration.email = tbl_users.username 
where your_respective_tblname.id = your_respective_tblname.[PARAM]p_id 
संबंधित मुद्दे