0

データベースに 2 つのテーブルがあります。テーブル A は USERS で、テーブル B は関係であり、以下はそれらの列です USERS(ユーザー名、アバター、専門分野) および RELATIONS(ユーザー名 1、ユーザー名 2、reldir) RELATIONS はユーザー間の関係を格納します。 = F であり、両方が相互にフォローしている場合、reldir=FB およびその逆の場合、この部分は非常にうまく機能していますが、

これらのテーブルにクエリを実行して、たとえばユーザー A がフォローしていないが、A と同じ専門分野を持つユーザーのリストを返すようにする必要があります...

私はこれを試しましたが、うまく機能しません...

$spec = ユーザー A の専門分野

SELECT a.username, a.avatar, a.specialty FROM users a, relations b WHERE a.username!=b.username2 AND (b.reldir!='F' OR b.reldir!='FB') AND a.speciality ='$spec'

私へのクエリは論理的に正しいようですが、間違っている可能性があります。私は助けが必要です

4

1 に答える 1

0

2 つの異なるテーブルがあり、それらがリンクされていないため、テーブルにいくつかのキーを追加する必要があります。

たとえば、テーブルUSERS:

id (as primary_key), username, avatar, specialty

RELATIONS:

user_id, username2, reldir

user_id - テーブル USERS のフィールド「id」です (「username1」ではなく)

次に、次のようなクエリを作成できます。

SELECT a.* 
FROM users a, relations b 
WHERE a.id = b.users_id 
  AND (b.reldir != 'F' OR b.reldir != 'FB') 
  AND a.speciality = '$spec'

ps: あなたの質問を正しく理解していれば)

于 2013-06-13T13:58:05.793 に答える