2012-03-22 16 views
30

मैं निम्नलिखित का चयन करने की कोशिश की:Postgresql स्तंभ संदर्भ "आईडी" है अस्पष्ट

SELECT (id,name) FROM v_groups vg 
inner join people2v_groups p2vg on vg.id = p2vg.v_group_id 
where p2vg.people_id =0; 

और मैं निम्न त्रुटि स्तंभ संदर्भ "आईडी" अस्पष्ट है मिलता है।

बात यह है कि यदि मैं वही चयन करने की कोशिश करता हूं लेकिन मैं केवल (नाम) मांगता हूं, न कि आईडी के लिए भी, यह काम करता है। मैं इसके लिए नया हूं और शायद मुझे कुछ स्पष्ट याद आ रही है। कोई सुझाव?

धन्यवाद।

+6

दूर करने के लिए एक बार आप अपने बयान में एक से अधिक तालिका है आपको चाहिए * alway * इसी तालिका उर्फ ​​साथ उपसर्ग अपने स्तंभ नाम। इस तरह आपको कभी भी यह त्रुटि नहीं मिलेगी। –

उत्तर

43

आप SELECT हिस्सा (शायद (vg.id, name)) में तालिका नाम/उपनाम की जरूरत है:

SELECT (vg.id,name) FROM v_groups vg 
inner join people2v_groups p2vg on vg.id = p2vg.v_group_id 
where p2vg.people_id =0; 
4

मुझे लगता है अपने p2vg टेबल भी एक आईडी क्षेत्र है, उस स्थिति में, postgres नहीं मिल रहा है, तो में आईडी SELECT vg या p2vg को संदर्भित करता है।

आप SELECT(vg.id,vg.name) का उपयोग करना चाहिए अस्पष्टता

+0

हाँ तथ्य यह है कि आईडी फ़ील्ड डुप्लिकेट है। – Fofole

3
SELECT (vg.id, name) FROM v_groups vg 
INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id 
WHERE p2vg.people_id = 0; 
0
SELECT vg.id, 
     vg.name 
    FROM v_groups vg INNER JOIN 
     people2v_groups p2vg ON vg.id = p2vg.v_group_id 
WHERE p2vg.people_id = 0; 
संबंधित मुद्दे