Помощь с SQL запросом

Есть 3 таблицы:
clients
ID Name
1 Client 2

senders
ID Name
1 Sender 1
2 Sender 2

client_sender
ID Client Sender
1 1 1
2 1 2

В третьей таблице одному клиенту может принадлежать несколько SENDERов. Задача по id клиента получить названия SENDERов. Как это сделать с помощью нескольких запросов я знаю, но хочется сделать красиво.

Вот то что есть сейчас
$classKey = 'ordersSender';
$c->leftJoin('ordersClientSender', 'Client', '`Client`.`client` = `'.$this->classKey.'`.`id`');
$c->select(array(
    'sender' => 'Client.sender'
));
Владимир
04 декабря 2018, 18:20
modx.pro
587
0

Комментарии: 1

Владимир
05 декабря 2018, 14:31
1
0
Решил проблему, может кому пригодится. Все это работает под extends modObjectGetListProcessor, в методе prepareQueryBeforeCount

$c->leftJoin('ordersClientSender', 'Client');
$c->leftJoin('ordersSender', 'Sender', '`Client`.`sender` = `Sender`.`id`');
$c->select($this->modx->getSelectColumns($this->classKey, $this->classKey));;
$c->select(array(
    'senders' => 'GROUP_CONCAT(Sender.name)'
));
$c->groupby($this->classKey.'.name');
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1