phpbb3 karma mod에 추가 쿼리를 써서 사용자가 3 명의 다른 사용자에게 업보를 부여하지 않으려면 동일한 사용자에게 업보를 줄 수 없음을 확인하고 싶습니다. 그러나 (poster_id
난MySQL에 "NOT IN"/ "LEFT JOIN"에러가 발생했습니다
... 내 SQL 구문에 오류가 발생하고있어 나는 그래서 내 내부 쿼리가 3 마지막 사람을 얻을 수
SELECT *
FROM phpbb_karma AS out
WHERE out.poster_id = 134
AND out.poster_id
NOT IN
(SELECT k.karma_id, k.user_id, k.poster_id
FROM phpbb_karma AS k
WHERE user_id = 108
ORDER BY k.karma_id DESC LIMIT 3)
을 따를 this 및 this 링크 및 쿼리 내가 외모를 작성했습니다 확인) 누구 (user_id
)가 업을했다. 이 쿼리 만 작동하지만 내 외부 쿼리와 함께 오류가 발생합니다.
1064 - SQL 구문에 오류가 있습니다. 올바른 구문을 사용하는 는 MySQL 서버 버전에 해당하는 설명서를 확인 근처 '밖으로 WHERE out.poster_id = 134 AND IN ( k.karma_id, 구를 선택하지 out.poster_id'라인 2에서
내 외부 쿼리에서 카르마를받을 사람은 134
이고 내 쿼리 결과에 나타나서는 안됨을 써주십시오.
오류가 실제로 두 번째 행에 있습니까?
LEFT JOIN을 사용하여 동일한 쿼리를 작성했지만 나에게도 마찬가지입니다. 구문 오류
1064
- 당신은 당신의 SQL 구문에 오류가 있습니다; 올바른 구문 라인에서 2SELECT * FROM phpbb_karma AS out LEFT JOIN phpbb_karma AS in ON in.poster_id = out.poster_id WHERE in.poster_id = 134 AND in.poster_id IS NULL
MySQL의 'phpbb_karma AS에 ON in.poster_id = out.poster_id WHERE in.poster_ 가입 왼쪽에서'근처 를 사용하는 는 MySQL 서버 버전에 해당하는 설명서를 확인 버전은 MySQL client version: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $
이지만 LEFT JOIN이 작동하지 않으므로 버전에 문제가 있다고 생각하지 않습니다.
와 같이 부탁드립니다. 내가 처음 대답을 수락했다. – Skyzer