조인 :SQL 내가 세 개의 테이블이
내가 원하는 무엇Messages
messageid | userid | text
Ex: 1 | 1303 | hey guys
Users
userid | username
Ex:
1303 | trantor
1301 | tranro1
1302 | trantor2
Favorites
messageid | userid
Ex:
1 | 1302
1 | 1301
는, 사용자 이름이있는 테이블을 표시입니다, 그리고 메시지의 특정 번호를 즐겨 찾기했다가있어 배의 수를 계산 타임스. 위의 예에서 "각 사용자는 정확히 두 번 좋아하는 메시지가 몇 개나 있습니까?"라는 질문을하고 싶습니다. 하고, 천연 확장 "최소 2"로 정확히 두 번 교체하는 것입니다
trantor | 1
말 행이있는 테이블을 보여주는 것 "이 6 개 이상"등 임 조인으로 카운트를 결합하려고 노력하고 혼란스러워. 그리고 테이블이 크기 때문에 Im은 중요하지만 내 쿼리가 올바르게 작동하고 있다고 확신하지 못합니다. 나는 this article을 읽고 여전히 혼란 스러워요 : L
내가 지금까지 무엇을 가지고 :
SELECT USERS.username, COUNT(FAVORITES.id) FROM USERS INNER JOIN FAVORITES ON FAVORITES.userID=USERS.id WHERE COUNT(FAVORITES.id) > 2;
그러나 나는 그것이 작동하는 것 같아요.
On S.O. 'correlated subqueries'에 these questions이 있지만 완전히 혼동 스럽습니다.
이렇게 될 수 있을까요?
SELECT USERS.username,
, ( SELECT COUNT(FAVORTIES.userid)
FROM FAVORITES INNER JOIN ON MESSAGES
WHERE FAVORITES.messageid = MESSAGES.messageid
)
FROM USERS