2012-11-12 25 views
5

मेरे पास एक सामान्य MySQL चयन है और मैं इसे ज़ेंड फ्रेमवर्क mysql चुनने के लिए फिर से लिखना चाहता हूं। यहाँ मेरी चयन है:जेड फ्रेमवर्क का चयन करने के लिए IF के साथ सामान्य एसक्यूएल का चयन कैसे करें?

$sql = " 
    SELECT 
     IF(mu.recieverUserId = '{$userId}', u.senderUserId, 
      mu.recieverUserId) friend1, 
      u.mesaj, u.senderUserId, mu.recieverUserId, 
      u.created 
     FROM 
      (SELECT * 
      FROM mesaje 
      ORDER BY `created` desc) AS u 
     LEFT JOIN `mesaje_utilizatori` AS `mu` ON u.id=mu.mesajId 
     WHERE (mu.recieverUserId = '{$userId}' OR u.senderUserId='{$userId}')    
       GROUP BY friend1 ASC 
      ORDER BY `u`.`created` DESC, u.id DESC 
     "; 
+0

इस तरह पूछने के लिए नहीं है प्रश्न, यह कोई और आपको समस्या हल कर रहा है और आप इस पर शून्य प्रयास कर रहे हैं .. आप पूछ सकते हैं कि आंतरिक क्वेरी ज़ेंड में कैसे काम करती है और ज़ेंड चयन क्वेरी में शर्तों को कैसे लिखना है – Sahal

+0

http://stackoverflow.com/questions/1340564/लेखन-ए-सबक्वायरी-उपयोग-ज़ेंड-डीबी .... http://stackoverflow.com/questions/5792229/zend-framework-zend-db-select-how-to-join-custom-subquery- तालिका – Sahal

+0

का सटीक डुप्लिकेट http://stackoverflow.com/questions/5792229/zend-framework-zend-db-select-how-to-join-custom-subquery-table – Sahal

उत्तर

2

यहाँ प्रलेखन है: Zend_Db_Statement

Zend क्वेरी

$sql = $db->query(
    'SELECT 
    IF(mu.recieverUserId = ?, u.senderUserId, 
    mu.recieverUserId) friend1, 
    u.mesaj, u.senderUserId, mu.recieverUserId, 
    u.created 
    FROM 
    (SELECT * 
    FROM mesaje 
    ORDER BY `created` desc) AS u 
    LEFT JOIN `mesaje_utilizatori` AS `mu` ON u.id=mu.mesajId 
    WHERE (mu.recieverUserId = ? OR u.senderUserId = ?)  
    GROUP BY friend1 ASC 
    ORDER BY `u`.`created` DESC, u.id DESC', 
    array($userId, $userId,$userId) 
); 

Zend परिणाम

while ($row = $sql->fetch()) { 
    Zend_Debug::dump($row); 
    } 
संबंधित मुद्दे