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

जॉइन सिंटैक्स में MySQL सहसंबद्ध सबक्वेरी

आपके प्रश्न का उत्तर नहीं है, सहसंबंध नामों को संदर्भित करना संभव नहीं है जैसा आप कर रहे हैं। बाहरी क्वेरी में शामिल होने का मूल्यांकन शुरू होने से पहले व्युत्पन्न तालिका आपकी आंतरिक क्वेरी द्वारा निर्मित होती है। तो सहसंबंध नाम जैसे t , tp , और u आंतरिक क्वेरी के लिए उपलब्ध नहीं हैं।

इसे हल करने के लिए, मैं आंतरिक क्वेरी में समान स्थिर पूर्णांक मान का उपयोग करने की अनुशंसा करता हूं, और फिर 1=1 के बजाय वास्तविक स्थिति का उपयोग करके बाहरी क्वेरी में व्युत्पन्न तालिका में शामिल हों ।

SELECT t.ticketid, u.userid, t.fullname, u.loginapi_userid, t.email,
  tp.subject, tp.contents, a.PhoneNumber, a.Location, a.Extension,
  a.BusinessUnit, a.Department
FROM swtickets t
 INNER JOIN swticketposts tp ON (t.ticketid = tp.ticketid)
 INNER JOIN swusers u ON (t.userid = u.userid)
 LEFT OUTER JOIN (
  SELECT cfv.typeid,
    MIN(CASE cfv.customfieldid WHEN 1 THEN cfv.fieldvalue END) AS 'PhoneNumber',
    MIN(CASE cfv.customfieldid WHEN 3 THEN cfv.fieldvalue END) AS 'Location',
    MIN(CASE cfv.customfieldid WHEN 5 THEN cfv.fieldvalue END) AS 'Extension',
    MIN(CASE cfv.customfieldid WHEN 8 THEN cfv.fieldvalue END) AS 'BusinessUnit',
    MIN(CASE cfv.customfieldid WHEN 9 THEN cfv.fieldvalue END) AS 'Department'
  FROM swcustomfieldvalues cfv
  WHERE cfv.typeid = 2458
  GROUP BY cfv.typeid
  ) AS a ON (a.typeid = t.ticketid)
WHERE t.ticketid = 2458;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL दिनांक प्रारूप

  2. mysql में एक कॉलम द्वारा कुल पंक्तियों की गणना और समूह बनाना

  3. JDBC बनाम हाइबरनेट

  4. हेडर जानकारी को संशोधित नहीं कर सकता

  5. SQL - टेक्स्ट में पूरा शब्द खोजें