PHPBB3 データベースを開き、関連するゲーム サーバーのホワイトリストとして使用されるフォーラムのすべての Minecraft ユーザー名のリストを取得する PHP ファイルを作成しようとしています。ユーザー名 (urbb_profile_fields_data.pf_mcusername) は、次のようにフィルタリングする必要があります: ユーザー名が null ではない、空白でない、禁止されていない (ID が urbb_banlist.ban_userid 内の ID と一致しない) およびアクティブ化されている (urbb_users.user_inactive_reason が 0 である) )。
私のSQLの知識は確かに非常に貧弱ですが、これを完全に機能させて実装しました:
SELECT urbb_profile_fields_data.pf_mcusername, urbb_profile_fields_data.user_id, urbb_banlist.ban_userid
FROM urbb_profile_fields_data, urbb_banlist
WHERE ((pf_mcusername IS NOT NULL) AND (pf_mcusername <> ''))
AND ban_userid != urbb_profile_fields_data.user_id
ただし、使用しようとすると:
urbb_users.user_inactive_reason
withinSELECT
およびurbb.users
within FROM
、SQL は 7000 を超える結果を取得し、ループを繰り返しているように見えます。これは、 に入るとすぐに発生urbb_users
しFROM
ます。
私は JOIN にあまり慣れていないため (いくつかのチュートリアルを読んだことがあります)、ここで見逃しているものがあることは間違いないので、誰かがここで助けてくれることを願っています!
ありがとう。