Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अज्ञात स्तंभ {0} में खंड पर

मुझे लगता है Puzzles कोई कॉलम नहीं है PuzzleID . क्या कॉलम को केवल ID कहा जाता है? उस टेबल में? या Puzzle_ID ?

आपको SHOW CREATE TABLE Puzzles चलाना चाहिए उस तालिका की वर्तमान परिभाषा देखने के लिए।

कभी-कभी एक लापता उद्धरण अपराधी हो सकता है:

... ON `Puzzles.PuzzleID` ...

ऊपर दिए गए कॉलम में "Puzzles.PuzzleID . नाम के कॉलम की तलाश की जाएगी ," यानी, बीच में एक बिंदु के साथ 16 वर्णों का एक स्तंभ नाम।

@ बेल यह ध्यान देने के लिए पुरस्कार का हकदार है कि आप कॉमा-स्टाइल जॉइन और SQL-92 स्टाइल जॉइन को मिला रहे हैं। मैंने उस पर ध्यान नहीं दिया!

आपको एक ही क्वेरी में दोनों का उपयोग नहीं करना चाहिए, क्योंकि जॉइन ऑपरेशंस की प्राथमिकता शायद भ्रम पैदा कर रही है।

JOIN कीवर्ड की प्राथमिकता अधिक है। आपकी क्वेरी को सरल बनाना ताकि हम तालिका-अभिव्यक्तियों को देख सकें, इसका मूल्यांकन इस प्रकार किया जाएगा:

SELECT . . . 
FROM (Puzzles JOIN PuzzleCategories),
(Clients JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages)

समस्या यह है कि PuzzleUsages . में शामिल हों Puzzles.PuzzleID . से तुलना करने की जरूरत है कॉलम, लेकिन प्राथमिकता के मुद्दे के कारण, यह नहीं हो सकता। कॉलम पिछले JOIN . के ऑपरेंड का हिस्सा नहीं है ।

आप त्रुटि को हल करने के लिए कोष्ठक का उपयोग कर सकते हैं, स्पष्ट रूप से तालिका-अभिव्यक्तियों की पूर्वता को ओवरराइड करते हुए (जैसे आप अंकगणितीय अभिव्यक्तियों में कोष्ठक का उपयोग करेंगे):

SELECT . . . 
FROM Puzzles JOIN (PuzzleCategories, Clients)
JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages

या आप केवल SQL-92 का उपयोग कर सकते हैं JOIN लगातार वाक्य रचना। मैं @बेल से सहमत हूं कि यह अधिक स्पष्ट है।

SELECT . . . 
FROM Puzzles JOIN PuzzleCategories JOIN Clients
JOIN Publications JOIN PublicationIssues JOIN PuzzleUsages


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दिनांक और समय की तुलना php

  2. mysqli सम्मिलित करें - लेकिन केवल यदि डुप्लिकेट नहीं है

  3. क्या हमारे पास MySQL में विकल्प के रूप में टेबल का नाम हो सकता है?

  4. mysql REGEXP मेल नहीं खा रहा है

  5. SQL केवल कॉलम पर अधिकतम मान वाली पंक्तियों का चयन करता है