sql中具有2关系的子查询1:n

vsikbqxv  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(445)

我是sql新手,我有一个关系模型:
我将用标记主键,用标记外键-

  1. Client(id*,name)
  2. Site(id*,name,addrees,idClient-)
  3. Device(id*,serialnumeber,idSite-)

从这些表中,我希望新表如下所示:

  1. * client.name*,*numberofsites*,*numerberofdevices*(total, every site grouped together).

我试过了,但没用:

  1. SELECT sq.*, count(Devices.id)
  2. from (
  3. SELECT Clients.id,Clients.name,Clients.notes,count (Sites.id),Sites.ids
  4. FROM Clients
  5. left join Sites on Clients.id=Sites.id Cliente
  6. group by Clients.id) as sq
  7. left join Devices on Devices.idSites=sq.Sites.id
  8. group by sq.Sites.id
u7up0aaq

u7up0aaq1#

你可以试试这个:

  1. select c.Name ClientName,
  2. count(distinct s.id) NumberOfSites,
  3. count(distinct d.id) NumerberOfDevices
  4. from Client c
  5. join Site s on c.id = s.idClient
  6. join Device d on s.id = d.idSite
  7. group by c.Name

相关问题