Autor Zpráva
wnc
Profil
Mám dotaz. Lze v MySQL provést něco takového:

Mám tabulku klienti:
+------+--------------+
|  id  | jmeno        |
+------+--------------+
| 1    | Jan Novak    |
+------+--------------+
| 2    | Adam Novy    |
+------+--------------+
| 3    | Petr Stary   |
+------+--------------+
| 4    | Lubos Zly    |
+------+--------------+


ustavy:
+------+--------------+
|  id  | jmeno        |
+------+--------------+
| 1    | Ustav 1      |
+------+--------------+
| 2    | Ustav 2      |
+------+--------------+
| 3    | Ustav 3      |
+------+--------------+
| 4    | Ustav 4      |
+------+--------------+


a relační tabulku r_klienti_ustavy
+------------+----------+
| klient_id  | ustav_id |
+------------+----------+
| 1          | 1        |
+------------+----------+
| 2          | 1        |
+------------+----------+
| 1          | 2        |
+------------+----------+
| 4          | 2        |
+------------+----------+


chtěl bych dotaz, který vrátí něco takového
+----------+-------------+----------------------+
| ustav_id | ustav_jmeno | klienti              |
+----------+-------------+----------------------+
| 1        | Ustav 1     | Jan Novak, Adam Novy |
+----------+-------------+----------------------+
| 2        | Ustav 2     | Jan Novak, Lubos Zly |
+----------+-------------+----------------------+


tedy něco v tomto smyslu
 
  SELECT
     ustavy.id as ustav_id,
     ustavy.jmeno as ustavy_jmeno,
     IMPLODE(klienti.jmeno,',') as klienti
  FROM
    ...
  GROUP BY 
    ustavy.id





Díky za odpověď; snad jsem to napsal srozumitelně. Jen doplním, že mi nejde o samotný JOINování ani GROUP BY - to není problém, jde mi o agregaci těch jmen.
Joker
Profil
wnc
Ta konstrukce se jmenuje GROUP_CONCAT (MySQL 4.1+)
wnc
Profil
díky, mrknu na to

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: