Witam serdecznie.

Mam 3 tabelki w bazie danych - ksiazki (dużo pól, indeks `id`), autorzy(`imie1`, `imie2`, `nazwisko`, `id`) i tabelę z powiązaniami książka <-> autor (`id`, `ksiazkaId`, `autorId`). Utworzyłem zapytanie, które pobiera tabelę z książkami i dodaje do niej pole "autorzy", które zawiera wypisanych po przecinku autorów.

  1. SELECT k.*, (SELECT group_concat((REPLACE(CONCAT(a.imie1, ' ', a.imie2, ' ', a.nazwisko), ' ', ' ')) SEPARATOR ', ' ) FROM autorzy a, linkksiazkaautor ka WHERE a.id = ka.autorId AND k.id = ka.ksiazkaId) AS `autorzy` FROM ksiazki k


To zapytanie działa poprawnie, sprawdzałem w phpMyAdmin. Problem polega na tym, że muszę to zapytanie utworzyć w postaci obiektu Zend_Db_Select, potrzebne mi to do dalszego przetwarzania przez Zend_Paginator. I tu pojawiają się schody. Próbowałem przykładowo:

  1. $select = $ksiazki
  2. ->select()
  3. ->from(array('k'=>'ksiazki', array('id'=>'k.id', 'tytul'=>'k.tytul', 'opis'=>'k.opis', 'liczbaStron'=>'k.liczbaStron', 'rokWydania'=>'k.rokWydania', 'autorzy'=>"(SELECT group_concat((REPLACE(CONCAT(a.imie1, ' ', a.imie2, ' ', a.nazwisko), ' ', ' ')) SEPARATOR ', ' ) FROM autorzy a, linkksiazkaautor ka WHERE a.id = ka.autorId AND k.id = ka.ksiazkaId)")));


I niestety zwraca zwykłą tabelę z książkami bez żadnych dowiązań.

Bardzo proszę o pomoc!



//EDIT: Problem rozwiązany. Źle nawiasy umieściłem w zapytaniu.