ФорумПрограммированиеPHP для идиотов → Zend_Db_Select

Zend_Db_Select

  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 26 января 2009 г. 23:33

    Как сделать такой запрос:

    SELECT books. * , COUNT( comments.book ) AS `comments_count`
    FROM books
    LEFT JOIN comments ON books.id = comments.book
    GROUP BY books.id


    с помощью Zend_Db_Select?
  • CyberSport

    Сообщения: 245 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 3:32, спустя 3 часа 59 минут 27 секунд

    я такие запросы в Zend_db пишу чистым sql! ИМХО в Zend_db удобно делать update,indert ну и delete а более менее сложные селекты выглядят коряво
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 27 января 2009 г. 12:13, спустя 8 часов 40 минут 40 секунд

    а чего не через fetchAll ?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 января 2009 г. 13:41, спустя 1 час 27 минут 55 секунд


    я такие запросы в Zend_db пишу чистым sql!
    Воистину так! Я вот с Zend_db не знаком, но чую, что все же чистый SQL для SELECT рулит. Просто не могу представить, как должна выглядеть сущность Zend_Db_Select, чтоб было удобно по другому. Кто-нибудь возьмется разубедить?
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 1 февраля 2009 г. 23:27, спустя 5 дней 9 часов 46 минут



    я такие запросы в Zend_db пишу чистым sql!
    Воистину так! Я вот с Zend_db не знаком, но чую, что все же чистый SQL для SELECT рулит. Просто не могу представить, как должна выглядеть сущность Zend_Db_Select, чтоб было удобно по другому. Кто-нибудь возьмется разубедить?


    вот этот запрос с помощью Zend_Db_Select


    $select = $this->getAdapter()
    ->select()
                                    ->from($this->_name)   // from books
                                    ->joinLeft("comments", "books.id = comments.book",
                            array('commentscount' => 'count(`comments`.`book`)'))
                                    ->group('books.id');
     
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 0:28, спустя 1 час 50 секунд

    я думаю там бред написан в строке

    array('commentscount' => 'count(`comments`.`book`)')

    кто со мной согласен что автор гонит?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 0:32, спустя 3 минуты 20 секунд


    кто со мной согласен что автор гонит?
    попятщсо!
    я не знаю, кто гонит, но вот это вот


    $select = $this->getAdapter()
    ->select()
                                    ->from($this->_name)   // from books
                                    ->joinLeft("comments", "books.id = comments.book",
                            array('commentscount' => 'count(`comments`.`book`)'))
                                    ->group('books.id');
     

    это просто пиздец!
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 0:34, спустя 1 минуту 59 секунд

    md5, нельзя заджойнить по COUNT(*)… ни в одной субд
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 0:35, спустя 1 минуту 52 секунды


    md5, нельзя заджойнить по COUNT(*)… ни в одной субд
    с какого хера?
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 0:38, спустя 2 минуты 10 секунд

    упс прошу прощения автор маладец я был невнимателен
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 2 февраля 2009 г. 4:10, спустя 3 часа 32 минуты 18 секунд


    упс прошу прощения автор маладец я был невнимателен


    все нормально, я хоть задумался, а может тут действительно что-то не так, хотя запрос выдавал то, что требовалось
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 2 февраля 2009 г. 4:11, спустя 1 минуту 6 секунд



    кто со мной согласен что автор гонит?
    попятщсо!
    я не знаю, кто гонит, но вот это вот


    $select = $this->getAdapter()
    ->select()
                                    ->from($this->_name)   // from books
                                    ->joinLeft("comments", "books.id = comments.book",
                            array('commentscount' => 'count(`comments`.`book`)'))
                                    ->group('books.id');
     

    это просто пиздец!


    почему вы считаете, что это пиздец?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 9:51, спустя 5 часов 39 минут 34 секунды




    кто со мной согласен что автор гонит?
    попятщсо!
    я не знаю, кто гонит, но вот это вот


             $select = $this->getAdapter()
                                    ->select()
                                    ->from($this->_name)   // from books
                                    ->joinLeft("comments", "books.id = comments.book",
                            array('commentscount' => 'count(`comments`.`book`)'))
                                    ->group('books.id');
     

    это просто пиздец!


    почему вы считаете, что это пиздец?
    наверно, потому что я считаю, что
    SELECT `books`.*, COUNT(`comments`.`book`) AS `commentscount`
    FROM `books`
    LEFT JOIN `comments`
    ON `books`.`id`=`comments`.`book`
    GROUP BY `books`.`id`

    как-то понятнее, а ещё если алиасы использовать, так вобще все сразу ясно

    и не требует каких-то спец. знаний
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 10:15, спустя 24 минуты 26 секунд

    md5, соглашусь, зенд дб - УГ, давайте напишем лучше? :)
    Сапожник без сапог
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 2 февраля 2009 г. 10:25, спустя 9 минут 32 секунды


    md5, соглашусь, зенд дб - УГ, давайте напишем лучше? :)
    своё УГ? :)
    все умрут, а я изумруд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!