복잡한 내부 조인 SQL 요청이 있습니다. 머리를 감쌀 수 없습니다. 누군가 나를 도울 수 있기를 바랬습니다. 3 개의 테이블을 포함하므로 2 개의 내부 조인이 있습니다.복잡한 내부 조인 SQL 요청
내 데이터베이스에는 "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
SELECT ... JOIN..ON ... JOIN ... ON ... WHERE ... IN (...) ... GROUP BY ... HAVING COUNT (*) =. .. – Strawberry