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

एसक्यूएल उप-चयन से कॉलम का उपयोग करता है जहां खंड

आप WHERE . में कॉलम उपनाम का उपयोग नहीं कर सकते खंड।

तो आप या तो अपनी क्वेरी को बाहरी चयन में लपेटें और वहां अपनी शर्त लागू करें

SELECT * 
  FROM
(
  SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
) q
 WHERE d >= 10

या आप उस शर्त को HAVING . में पेश कर सकते हैं इसके बजाय खंड

SELECT a, b, c,
    (SELECT d FROM B LIMIT 0,1) d
  FROM A
HAVING d >= 10

एक और तरीका है CROSS JOIN . का उपयोग करना और WHERE . में अपनी शर्त लागू करें खंड

SELECT a, b, c, d
  FROM A CROSS JOIN 
(
  SELECT d FROM B LIMIT 0,1
) q
 WHERE d >= 10

यह रहा SQLFiddle उपरोक्त सभी प्रश्नों के लिए डेमो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकल अद्यतन क्वेरी के लिए आवश्यक लेनदेन?

  2. एसक्यूएल 'पसंद' वाक्यविन्यास

  3. गतिरोध के बाद MySQL में लेनदेन को फिर से शुरू करना

  4. एन के साथ टेबल कैसे बनाएं:MySQL में एम रिलेशनशिप?

  5. हाइबरनेट डीबी कनेक्शन पूलर के साथ कुछ गड़बड़ c3p0