複雑な INNER JOIN SQL リクエストがあり、頭を包み込むことができません。誰かが私を助けてくれることを望んでいました。これには 3 つのテーブルが含まれるため、2 つの内部結合があります。
私のデータベースには、「users」、「statement」、「opinion」というテーブルがあります。
ユーザーは、ステートメントや意見を作成できます。意見には、それが表すユーザーの ID を参照する「authorid」変数と、参照するステートメントを参照する「statementid」変数があります。
2 つのステートメントが与えられた場合、両方のステートメントについて意見を書いたユーザーのリストを返すことができるリクエストを送信しようとしています。
みたいなことを考えている
$sid1=5;
$sid2=6;
$sql = "
SELECT user.*
FROM users
INNER JOIN opinion
ON opinion.authorid=user.uid
WHERE opinion.statementid= [sid1? how can i use both]
INNER JOIN statement
ON statment.uid=opinion.statementid
";
しかし、ご覧のとおり、私は立ち往生しています。UNIONは必要ですか?さらに明確にする必要がある場合はお知らせください。
前もって感謝します。
編集:私はそれを行う方法を考え出した:
SELECT DISTINCT users.uid
FROM users
JOIN opinion o, opinion o2
WHERE users.uid = o.authorid
AND users.uid = o2.authorid
AND o2.statementid = $sid2
AND o.statementid = $sid1