私は作成する必要があるSQL文を理解するのに少し問題があります。MySQL - 複雑なクエリの問題、複数のテーブル
私は2つのテーブル
友達
===================================
friendfromid | friendtoid | request
===================================
ユーザー
=================
userid | username
=================
私は私の友人で、各ユーザーのユーザーIDとユーザー名を取得する必要があります。
私のIDは、ユーザーまたはユーザーが私にリクエストしたかどうかによって、friendfromidまたはfriendtoidのいずれかにあります。
基本的に何が起こる必要があるのは、スクリプトがフレンドテーブルを見て、自分のidがfriendfromidかfriendtoidのすべての行を取得する必要があり、リクエストフィールドが1に設定されていることを確認し、マッチしてから、私のものではない、それぞれの友人のIDまたは友人のIDとユーザー名を取得します。
たとえば、自分のIDが8で、友だちのIDが9の場合、自分のIDがfriendfromidフィールドにあると私にリクエストしたとしましょう。私のIDはfriendtoidフィールドにあります。 (9)、それをusersテーブルのそのユーザに一致させます。
SELECT *
FROM users
JOIN friends
ON friendfromid != userid
OR friendtoid != userid
WHERE request = 1
AND userid = {the ID}
あなたは '(friendfromid =?AND friendtoid = userid)OR(friendtoid =?AND friendfromid = userid) '。 –
はい。?友人リストが必要なことを意味します。 –
私が意味するのは、 'fromid'が' toid'と外来キーが一致し、その逆の場合です。あなたの全参加条件は '{the ID} = userid'と同等です! –