1

也许你可以帮助我:

如果有一个表1:帐户

user_id   account_id   
39        3799207
39        80286966
40        3789458

...

表 2:订阅者

id   client_id  master_id   master_account_id   active 
1    43         39          3799207             1
2    43         39          80286966            1
3    44         39          80286966            1
4    45         39          80286966            1

...

使用此请求:

'SELECT account_id FROM accounts WHERE user_id = "39"';

我可以得到这张表:

Account
3799207
80286966

我怎样才能得到这张桌子:

Account      Subscribers     Count
3799207      43              1
80286966     43,44,45...     3

谢谢!

4

1 回答 1

6

试试这个:

SELECT a.account_id Account, 
      GROUP_CONCAT(b.client_id) Subscribers,
      COUNT(b.client_id) `Count`
FROM accounts a INNER JOIN subscribers b
    on a.account_id = b.master_account_id
WHERE b.master_id = '39'
GROUP BY a.account_id

MySQl并具有将列连接成行SQLite的内置函数。GROUP_CONCAT

高温高压

于 2012-05-23T11:48:04.270 回答