如何使用其他数据库作为参考从mysql数据库中检索用户数?

时间:2014-02-25 08:29:34

标签: php mysql database

我有问题。我在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中获取该数字。

请帮助并谢谢

2 个答案:

答案 0 :(得分:0)

执行SQL使用,例如PDOmysqli

查询看起来像

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