2012-11-12 8 views
5

Mam normalny wybór mysql i chciałbym przepisać go do Zend Framework mysql select. Oto moja wybierz:Jak przepisać normalny wybór sql za pomocą IF do Zend Framework wybierz?

$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

To nie jest sposób, aby zapytać pytanie, to jest ktoś inny, który rozwiązuje twój problem i wkładasz na niego zero wysiłku. Możesz zapytać, jak działa wewnętrzna kwerenda w Zend i jak pisać warunki w zapytaniu Zend select – Sahal

+0

http://stackoverflow.com/questions/1340564/write-a-subquery-using-zend-db .... http://stackoverflow.com/questions/5792229/zend-framework-zend-db-select-how-to-join-custom-subquery- tabela – Sahal

+0

Dokładny duplikat http://stackoverflow.com/questions/5792229/zend-framework-zend-db-select-how-to-join-custom-subquery-table – Sahal

Odpowiedz

2

Oto dokumentacja: Zend_Db_Statement

Zend Zapytanie

$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 Wynik

while ($row = $sql->fetch()) { 
    Zend_Debug::dump($row); 
    }