2013-03-21 1 views
0

특정 범주의 액세스를 특정 조직의 사용자에게만 제한하려고합니다.SQL에서 OR 쿼리 수행 방법

User 
User_id, Username, Organisation_id 

Organisation 
Organisation_id, Org_name 

Category 
Category_id, Cat_name 


Category_Organisation 
Category_id, Organisation_id 

그래서 내 쿼리 this-과 같이된다

SELECT * FROM category c 
INNER JOIN category_organisation co ON co.category_id = c.category_id 
AND co.organisation_id = 'LOGGED_IN_USERs_ORGANISATION_ID' 

나는 일부 사용자가 너무 그때

Category_user 
Category_id, User_id 

내 질문은이 테이블이 허용 즉, 예외를 추가한다면 -

  1. OR 검색을 수행하는 방법 h 쿼리가 주어진 조직 ID 또는 주어진 사용자 ID에 속하는 카테고리를 반환하도록
  2. Discussions 테이블에 대해 비슷한 제한을 원합니다. 그래서 만든 ..

    토론

    Discussion_id, discussion_title

    Discussion_Users

    Discussion_Id, USER_ID

    Discussion_Organisations

    Discussion_Id, Organisation_id

비슷한 테이블을 만들어야 만합니다. 모든 제품, 범주 또는 기타 새 테이블에 대해 하나의 기본 사용 권한 테이블을 얻을 수 있다고 생각합니까?

+0

가 더 읽기. – bodi0

답변

1

이 하나를 시도하십시오 : SQL 조인과 다 대다, 일대 다, 일대일의 관계에 대해

SELECT * FROM category c 
INNER JOIN category_organisation co ON co.category_id = c.category_id 
AND co.organisation_id = 'LOGGED_IN_USERs_ORGANISATION_ID' OR c.category_id IN(SELECT Category_user.Category_id FROM Category_user WHERE Category_user.User_id = 'LOGGED_IN_USERs_ORGANISATION_ID')