2012-06-07 4 views
0

합리적으로 복잡한 (나에게) 쿼리에 문제가 있습니다. 각 조각은 작동하지만 오류가 발생하지 않지만 반환해야하는 것을 반환하지 않습니다.mysql 권한이없는 (선택)

table_c = things to belong to 
table_s = users that belong to things in table_c 
table_u = users 

그리고 쿼리는 다음과 같습니다

내가 table_c에 table_c의 카운티/주/국가가 일치하는 경우 "에 속하는 것들"모두를 선택하기 만하면 무엇
SELECT * FROM table_c AS C 
RIGHT JOIN table_u AS U ON C.userid = U.user_id 
WHERE C.userid='xxx' 
    AND C.c_county IN (11, 00) 
    AND C.c_state IN (12, 00) 
    AND C.c_nation='US' 
    AND C.c_privacy='0' 
    AND C.userid NOT IN ( 
    SELECT userid FROM table_s AS S WHERE S.channel_id = C.id) 
ORDER BY U.security, C.chan_name 

사용자 카운티/주/table_u 또는 "things to be things"의 국가 설정은 00 (위치 없음)이고 userid는 table_s에 아직 없습니다.

상태 # 12의 county # 11에있는 table_c에 놀이터를 만들고 카운티 # 11과 상태 # 12의 사용자는 자신이 속할 수있는 모든 것을 찾고 싶습니다. 그래서 쿼리가 내 놀이터를 반환해야합니다.

이것은 어디서나 C.userid = 'xxx'의 사용자 ID가 놀이터를 만든 사람에게 속한 경우에만 작동합니다.
내가 원하는 것은 사용자가 속해있는 항목을 만든 다음 다른 사용자가 그 항목에 참여하게하는 것입니다. 그래서 userid = 'xxx'부분이 올바르지 않고 그 항목을 쓰는 방법을 모르겠습니다.

진흙처럼 명확하거나 명확합니까?

+0

테이블 스키마 정의가 있습니까? – dispake

+1

http://sqlfiddle.com/ 사용하면 더 쉽게 될 것입니다. – jcho360

답변

0

대답은 완전히 가입 ... 이미 나는 또한 다른 모든 것들에게 가입 할 수 있도록 필요가 없습니다 카운티/주/국가를 구축하는 데 필요한 사용자 정보를 가지고 있기 때문에 ... 제거하는 것입니다

여분의 눈 주셔서 감사합니다!