itsource

조직에 속한 모든 사용자를 가져오기 위한 MySQL 쿼리

mycopycode 2022. 11. 4. 21:32
반응형

조직에 속한 모든 사용자를 가져오기 위한 MySQL 쿼리

(설계하지 않은) 상당히 큰 데이터베이스가 있어 데이터를 가져와야 합니다.조직에 속한 모든 사용자를 찾아야 합니다.다음과 같은 사용자 테이블이 있습니다.

id
name
email
password
more fields

그리고 이와 같은 조직표도 있습니다.

id
name
org_number
contact_person
more fields

및 다른 테이블이 관련되어 있는user_orgs 테이블

id
user_id
org_id

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;

다른 많은 문의와 함께 조직 번호 123456에 등록된 사용자가 20명이어야 하는데 빈 상태로 반환됩니다.

이거 어떻게 해?

당신의.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;

언급URL : https://stackoverflow.com/questions/60829789/mysql-query-to-get-all-users-belonging-to-an-organization

반응형