我有一個複雜的INNER JOIN SQL請求我無法環繞我的頭。我希望有人能幫助我。它涉及3個表格,所以它有2個內部連接。我的數據庫有表格「用戶」,「聲明」,「意見」。複雜INNER JOIN SQL請求
用戶可以撰寫陳述和意見。 意見有一個「authorid」變量引用它們所代表的用戶的id,並且它們有一個引用它們引用的語句的「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
";
但你可以看到我堅持。我需要聯盟嗎?如果您需要進一步澄清,請告訴我。
在此先感謝。
編輯:我想通了,如何做到這一點:
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
SELECT ... JOIN..ON ... JOIN ... ON ... WHERE ... IN(...)... GROUP BY ...具有COUNT(*)=。 .. – Strawberry