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

प्रोपेल:अलियास्ड जॉइन टेबल से कॉलम चुनना

where . के बारे में jchamberlain की टिप्पणी पढ़ने के बाद मैं थोड़ा शोध करता हूं उनके जवाब के तहत और मैं इस निष्कर्ष पर पहुंचा कि

  • आपको हमेशा UpperCamelCase . का उपयोग करना चाहिए स्टाइल जब आप प्रोपेल फ़ंक्शंस में कॉलम नाम टाइप करते हैं, भले ही यह कभी-कभी ठीक काम करता है यदि आप इस शैली का उपयोग नहीं करते हैं
  • समाधान प्रोपेल संस्करण पर निर्भर करता है

संभवतः प्रोपेल <=1.6.7 (या शायद कच्ची SQL क्वेरी ही एकमात्र समाधान है) के लिए कोई समाधान नहीं है, क्योंकि मैं कितनी भी कोशिश करूं, मैं हमेशा Cannot fetch ColumnMap for undefined column: ID_TABLE_B प्रोपेल अपवाद।

प्रोपेल के लिए>=1.6.8 यह काम करेगा:

यदि आपको सरणी की आवश्यकता है परिणाम के रूप में उपनामित स्तंभों के साथ

TableAQuery::create()
  ->useTableBQuery('a')
      // some filters methods
  ->endUse()
  ->useTableBQuery('b')
      // some filters methods
  ->endUse()
  ->select(array('a.Value1', 'b.Value2')) // notice a.value_1 or b.value_2 won't work
  ->find();

अगर आपको वस्तुओं की आवश्यकता है अलियास्ड कॉलम से वर्चुअल कॉलम के साथ

TableAQuery::create()
  ->useTableBQuery('a')
      // some filters methods
  ->endUse()
  ->useTableBQuery('b')
      // some filters methods
  ->endUse()
  ->withColumn('a.Value1') // notice a.value_1 won't work
  ->withColumn('b.Value2') // notice b.value_2 won't work
  ->find();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO, $_GET, और MySQL डेटाबेस से चयन

  2. फ़ील्ड के पहले दो वर्णों द्वारा SQL को सॉर्ट करना

  3. क्रोंटैब मैक ओएस में mysql-अजगर आयात नहीं कर सकता

  4. यूटीएफ -8 में 3 से अधिक बाइट्स लेने वाले यूनिकोड वर्णों को कैसे फ़िल्टर (या प्रतिस्थापित) करें?

  5. गैर-शून्य पंक्तियों के बाद 0-मूल्यवान डेटाबेस पंक्तियों को क्रमबद्ध करें