1

mysqlデータベースを使用したphpbbフォーラムがあります。ユーザーは「user_id」で識別されます。ただし、複数のグループがあります。ユーザーは「人間」(9)または「ゾンビ」(8)グループのいずれかになります。ただし、それらは常に「登録済み」(2)グループに属します。これにより、次のようなテーブルが作成されます。

mysqlテーブル

新しいテーブルを形成するために、合計3つのデータベースが使用されます。

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

「チーム」(「登録済み」グループの結果)の下にある空白のフィールドを持つすべての行を結果セットから削除する必要があります。すべての助けに感謝します!

4

1 に答える 1

0

HAVING次のように、句の最後に句を追加しますWHERE

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はクエリ結果(集計結果を含む)に対して別のフィルタリングパスを実行し、句に一致しないレコードを破棄しHAVINGます。

HAVING次のように、句にいくつかの条件を含めることもできます。

HAVING Team <> '' and Player <> 'First Last'
于 2012-09-23T05:28:49.493 に答える