2012-09-23 5 views
1

mysql 데이터베이스를 사용하는 phpbb 포럼이 있습니다. 사용자는 "user_id"로 식별됩니다. 그러나 여러 그룹이 있습니다. 사용자는 "인간"(9) 또는 "좀비"(8) 그룹에 속하게됩니다. 그러나 그들은 항상 "등록 된"(2) 그룹에 속할 것입니다.열 값을 기준으로 mysql 행을 무시하십시오.

mysql table

세 개의 데이터베이스가 새 테이블을 형성하기 위해 총 사용이이처럼 보이는 테이블을 작성합니다.

SELECT phpbb_users.user_id 'ID', 
IF(phpbb_user_group.group_id =9, 'Human', IF(phpbb_user_group.group_id =8, 'Zombie', '')) AS Team, 

IF(phpbb_profile_fields_data.pf_oz =1, 'Yes', ' ') AS OZ, 
phpbb_users.username 'Player', phpbb_users.user_email 'E-mail', 
IF(phpbb_profile_fields_data.pf_share_phonenum =1, phpbb_profile_fields_data.pf_phone_number, ' ') AS Phone, 
phpbb_profile_fields_data.pf_code 'Tag Code', 
phpbb_profile_fields_data.pf_student_id 'Student ID', phpbb_users.starve 'Time Remaining (in hours)' 
FROM phpbb_profile_fields_data, phpbb_users, phpbb_user_group 
WHERE phpbb_profile_fields_data.user_id = phpbb_users.user_id 
AND phpbb_profile_fields_data.user_id = phpbb_user_group.user_id 
LIMIT 0 , 300 

나는 결과 세트에서 제거 (이하 "등록"그룹의 결과) "팀"에서 빈 필드의 모든 행이 필요합니다. 모든 도움을 주시면 감사하겠습니다!

WHERE phpbb_profile_fields_data.user_id = phpbb_users.user_id 
AND phpbb_profile_fields_data.user_id = phpbb_user_group.user_id 
HAVING Team <> '' 
LIMIT 0 , 300 

HAVING 절 (모든 집계 결과 포함) 쿼리 결과에 다른 필터링 패스를 할 MySQL의을하고 :

답변

0

은 다음과 같이 당신의 WHERE 조항의 끝에 HAVING 절을 추가 HAVING 절과 일치하지 않는 레코드를 버립니다.

또한이처럼 HAVING 절에 몇 가지 조건이있을 수 있습니다

HAVING Team <> '' and Player <> 'First Last' 
+0

감사합니다 순전히! 매력처럼 일했습니다. 그러나 이것은 작은 걸림돌을 만들었습니다. 나는 인간과 좀비 팀의 중재자를두고있다. 나는 그를리스트에 나타나지 않게해야한다. 나는 "HAVING Player <> 'First Last'"를 시도했지만, 2 명이있을 때 having 서술문이 작동하지 않습니다. –

+0

팀 <> ''및 플레이어 <> '처음으로 마지막' '을 시도 했습니까? – Nelson

+0

그랬습니다. 고마워요 :) –

관련 문제