반응형
테이블 구조 :
users: uid, name
friendships: uid1, uid2
game_membership: gid, uid
기본적으로 gid
의 함수로 쿼리를 가져오고 다음을 반환하려고합니다.
uid1, name1, uid2, name2
여기서 주어진 gid
아래의 game_membership
테이블에있는 uid
만 반환됩니다. 이것이 내가 지금까지 얻은 것입니다.
SELECT
f.uid1 AS id1,
u1.name AS name1,
f.uid2 AS id2,
u2.name AS name2
FROM
friendships AS f
WHERE
u1.uid in (SELECT uid FROM game_membership WHERE gid = <GID>)
AND u2.uid in (SELECT uid FROM game_membership WHERE gid = <GID>)
JOIN users AS u1 ON f.uid1 = u1.uid
JOIN users AS u2 ON f.uid2 = u2.uid
지금 바로 MySQL 구문 오류가 발생합니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? game_membership
테이블의 uid
에서 각 uid
에 대해 하나씩 추가 JOIN 또는 두 번을 수행해야 할 것 같습니다.
해결 방법
where 절 대신 Game_membership 테이블에 조인하는 것이 좋습니다.
SELECT
f.uid1 AS id1,
u1.name AS name1,
f.uid2 AS id2,
u2.name AS name2
FROM
friendships AS f
JOIN game_membership AS user1_gm ON user1_gm.uid = f.uid1
JOIN game_membership AS user2_gm ON user2_gm.uid = f.uid2
JOIN users AS u1 ON f.uid1 = u1.uid
JOIN users AS u2 ON f.uid2 = u2.uid
WHERE user1_gm.gid = <GID> AND user2_gm.gid = <GID>
참조 페이지 https://stackoverflow.com/questions/10166289
반응형
'MySql' 카테고리의 다른 글
MySQL PHP에서 객체를 문자열로 변환 (0) | 2021.02.14 |
---|---|
MySQL MySql If Exists Set Value? (0) | 2021.02.14 |
MySQL Facebook의 profile.php? = id는 어떻게 작동합니까? (0) | 2021.02.14 |
MySQL Python에서 열 이름을 사용하여 SQL 결과 열 값을 검색하는 방법은 무엇입니까? (0) | 2021.02.14 |
MySQL Django의 GROUP_CONCAT에 해당 (0) | 2021.02.14 |
댓글