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

जेडएफ टेबल इंटरफेस में एक सम्मिलित क्वेरी कैसे करें?

$models = new Models();
$select = $models->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
       ->join(array("a"=>"manufacturers"), 'models.manufacturer_id = a.id',
         array("man_name"=>"name", "man_description"=>"description"))
       ->where("a.name LIKE 'A%'");
$rowset = $models->fetchAll($select);

दुर्भाग्य से Zend_Db_Table संबंध इंटरफ़ेस में इसके घोषित संदर्भ मानचित्र से जुड़े हुए प्रश्न बनाने से संबंधित बहुत अधिक बुद्धिमत्ता नहीं है। जटिल प्रश्नों के लिए समुदाय द्वारा योगदान किया गया समाधान है Zend_Db_Table_Select क्वेरी फैक्टरी।

ध्यान दें कि आपको निर्माता के नाम और विवरण के लिए कॉलम उपनाम देना होगा, अन्यथा ये कॉलम पंक्ति डेटा के लिए सहयोगी सरणी में मॉडल के नाम और विवरण को दबा देंगे। इससे बचने के लिए आपको कॉलम को स्पष्ट रूप से नाम देना चाहिए।

लेकिन आपके मामले में, मैं टेबल इंटरफ़ेस और चयन इंटरफ़ेस को छोड़ दूंगा, और सीधे डीबी एडाप्टर का उपयोग करके सीधे एक SQL क्वेरी निष्पादित करूंगा:

$data = $db->fetchAll("
  SELECT m.*, a.name AS man_name, a.description AS man_description
  FROM Models m JOIN Manufacturers a ON m.manufacturer_id = a.id
  WHERE a.name LIKE 'A%'");

आपको डेटा वापस सहयोगी सरणियों की एक साधारण सरणी के रूप में मिलेगा, न कि Zend_Db_Table_Rowset के रूप में . लेकिन चूंकि एक सम्मिलित रोसेट वैसे भी लिखने योग्य नहीं है, आपने बहुत अधिक त्याग नहीं किया है।




  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. शामिल होने के साथ पारस्परिक मित्र sql (Mysql)

  3. MySQL में, क्या मैं एक ही तालिका में सम्मिलित करने के लिए एक पंक्ति की प्रतिलिपि बना सकता हूँ?

  4. MySQL डेटाबेस में गैर ascii वर्णों की अनुमति दें

  5. MySQL EXPLAIN 'टाइप' 'रेंज' से 'रेफरी' में बदल जाता है जब स्टेटमेंट में तारीख बदली जाती है?