MySQL查询以获取属于一个组织的所有用户

Jim*_*lls 2 mysql sql mariadb

我有一个相当大的数据库(我没有设计),我需要从中获取一些数据。我需要找到属于一个组织的所有用户。有一个看起来像这样的用户表;

id
name
email
password
more fields
Run Code Online (Sandbox Code Playgroud)

和这样的组织表;

id
name
org_number
contact_person
more fields
Run Code Online (Sandbox Code Playgroud)

和一个 user_orgs 表,其他表通过它关联;

id
user_id
org_id
Run Code Online (Sandbox Code Playgroud)

给定一个 org_number,我希望能够获得该组织中每个用户的姓名和电子邮件地址。

我试过了

SELECT 
   per.name, 
   per.email, 
   org.name AS orgname, 
   org.org_number, 
   org.contact_person 
FROM users AS per 
LEFT JOIN user_orgs AS uorgs 
ON per.id=uorgs.org_id 
LEFT JOIN organization AS org 
ON uorgs.org_id=org.id 
WHERE org.org_number=123456;
Run Code Online (Sandbox Code Playgroud)

连同一堆其他查询,我知道应该有 20 个用户注册到组织编号 123456,但它返回空。

我怎样才能做到这一点?

Gor*_*off 5

您的JOIN条件看起来不正确:

SELECT u.name, u.email, 
       o.name as orgname, o.org_number, o.contact_person 
FROM users u JOIN
     user_orgs uo 
     ON u.id = uo.user_id JOIN
------------------^  -- this changes
     organization o
     ON uo.org_id = o.id 
WHERE o.org_number = 123456;
Run Code Online (Sandbox Code Playgroud)