我有问题。我在mysql DB table1,table2和table3中有3个表。我使用PHP来退休并写下所有信息。
Table1列出了我为其创建的ID的组织:
Name of ogranisation | Organisation ID
--------------------------------------
org1 | 123
org2 | 234
org3 | 345
Table2列出了这些组织正在使用的服务列表及其所属的table1组织的ID和ID:
Name of service | Service ID | ID of organisation it belongs to
---------------------------------------------------------------
service1 | a1 | 123
service2 | b2 | 123
service3 | c5 | 345
表3列出了具有表2中提供的服务ID的用户列表:
Name of User | Service ID
-------------------------
user1 | a1
user2 | a1
user3 | c5
user4 | b2
现在,我需要使用这些表来获取table3中为组织提供服务的用户数量。就像你查看table2一样,你可以看到带有ID(123)的org1提供了service1(a1)和service2(b2),而在表3中你可以看到有3个用户提供服务a1(2x)和b2所以有3个用户为org1提供服务。
如何使用PHP从DB中获取该数字。
请帮助并谢谢
答案 0 :(得分:0)
查询看起来像
SELECT
u.name
FROM user u
INNER JOIN service s
ON u.serviceId = s.serviceId
INNER JOIN ogranisation o
ON s.ogranisationId = o.ogranisationId
答案 1 :(得分:0)
试试这个
SELECT COUNT(DISTINCT(user)) as cnt
FROM `table3` A
INNER JOIN `table2` B ON A.service_id = B.service_id
INNER JOIN `table1` C ON B.organization_id = C.organization_id
AND C.organization_id =123
参见 FIDDLE