में "संदिग्ध कॉलम नाम" मेरे पास SQLite डीबी, INVITEM और SHOPITEM में दो टेबल हैं। उनकी साझा विशेषता ItemId है और मैं एक इनर जॉइन करना चाहता हूं। क्वेरी है:SQLite INNER JOIN
SELECT INVITEM.CharId AS CharId,
INVITEM.ItemId AS ItemId
FROM (INVITEM as INVITEM
INNER JOIN SHOPITEM AS SHOPITEM
ON SHOPITEM.ItemId = INVITEM.ItemId)
WHERE ItemId = 3;
SQLite इसे पसंद नहीं करता है:
SQL error: ambiguous column name: ItemId
त्रुटि दूर हो जाता है तो मैं WHERE INVITEM.ItemId = 3
लिखते हैं, लेकिन जब से जहां हालत कमोबेश उपयोगकर्ता द्वारा निर्दिष्ट, मैं नहीं बल्कि बनाना यह टेबल निर्दिष्ट करने के बिना काम करता है। प्राकृतिक जॉइन इस मुद्दे को हल करने लगता है, लेकिन मुझे यकीन नहीं है कि समाधान सामान्य है (यानी मैं इस मामले में उपयोग कर सकता हूं, लेकिन मुझे यकीन नहीं है कि मैं हर मामले में उपयोग कर सकता हूं)
कोई वैकल्पिक SQL वाक्यविन्यास जो समस्या को ठीक करेगा?
मैंने ऐसा कुछ करने का अंत किया। मैं उपयोगकर्ता को सीधे एसक्यूएल लिखने की इजाजत नहीं देता, लेकिन जहां खंड खंड अभिव्यक्ति टेम्पलेट का उपयोग करके बनाए जाते हैं। कॉलम नामों की योग्यता जहां आवश्यक था पर्याप्त था। – ggambett