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

WHERE क्लॉज में कॉलम उपनाम

परीक्षण नहीं किया गया, लेकिन यह हैक काम करना चाहिए...

SELECT * FROM (  
    SELECT profile.id AS id, given.name AS 'given_name', family.name AS 'family_name'
    FROM green_profile profile 
    LEFT JOIN green_name given ON given.profileid = profile.id AND given.name_typeid = 0 
    LEFT JOIN green_name family ON family.profileid = profile.id AND family.name_typeid = 1   
) as temptable
WHERE given_name LIKE 'levi%' 
ORDER BY given_name DESC LIMIT 0 , 25

यह आपके मूल चयन कथन (जहां खंड और आदेश के बिना) से केवल एक अस्थायी तालिका बनाकर काम करता है, जिसमें आपके द्वारा निर्दिष्ट कॉलम नाम होते हैं। फिर आप इसमें से अपने इच्छित कॉलम नामों के साथ चयन करें।

एक बेहतर तरीका यह हो सकता है कि आप अपने इच्छित कॉलम नामों के साथ एक दृश्य बनाएं और दृश्य से चयन करें...

CREATE VIEW newtable AS
SELECT profile.id AS id, given.name AS 'given_name', family.name AS 'family_name'
FROM green_profile profile 
LEFT JOIN green_name given ON given.profileid = profile.id AND given.name_typeid = 0 
LEFT JOIN green_name family ON family.profileid = profile.id AND family.name_typeid = 1;

और फिर...

SELECT * FROM newtable
WHERE given_name LIKE 'levi%' 
ORDER BY given_name DESC LIMIT 0 , 25


  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/Mysql समय अंकगणितीय व्यवहार

  2. प्रत्येक समूह के लिए उच्चतम संख्या प्राप्त करने के लिए MySQL के साथ ORDER और GROUP का उपयोग करना

  3. इस जटिल EAV MYSQL क्वेरी को कैसे अनुकूलित करें?

  4. CentOS पर MySQL को अपग्रेड कैसे करें

  5. MySQL - DESC द्वारा ऑर्डर के साथ ग्रुप करें