조인 쿼리에 새 사례를 추가하려고하지만 결과에 영향을 미치지 않습니다.여러 사례가있는 내부 조인 쿼리
나는 사용자 포스트가있는 테이블을 가지고 있는데, 누가 (user_id에 의해) 그 친구의 친구인지에 대한 쿼리 검사는 그 포스트가 5 번 이상 신고되었는지를 확인한다. '여기까지 잘 작동합니다. 게시물이 공개되면 지금 확인하고 싶습니다. 그래서이 경우 우정 사건을 무시해야합니다.
새로운 사건을 추가하기 전에 작업 쿼리 : 새로운 사례 확인 (아무것도하지 않음) 추가 후
$sql = "SELECT COUNT(*) AS count_posts
FROM mutamba_posts
INNER JOIN
(
SELECT aluno_id
FROM mutamba_amigos
WHERE mutamba_amigos.amizade_id IN
(
SELECT amizade_id FROM mutamba_amigos WHERE aluno_id = '{$myid}'
)
GROUP BY aluno_id
) mutamba_amigos ON mutamba_amigos.aluno_id = mutamba_posts.aluno_id
WHERE mutamba_posts.post_flags < 5
ORDER BY mutamba_posts.post_date DESC";
:
$sql = "SELECT *
FROM mutamba_posts
INNER JOIN
(
SELECT aluno_id
FROM mutamba_amigos
WHERE mutamba_amigos.amizade_id IN
(
SELECT amizade_id FROM mutamba_amigos WHERE aluno_id = '{$myid}'
)
GROUP BY aluno_id
) mutamba_amigos ON mutamba_amigos.aluno_id = mutamba_posts.aluno_id
WHERE mutamba_posts.post_flags < 5
OR (mutamba_posts.post_visibility = 'show_all' AND mutamba_posts.post_flags < 5)
ORDER BY mutamba_posts.post_date DESC
LIMIT {$start}, {$limit}";
어떤 도움을 주셔서 감사합니다.
편집 2 : 너무 오래 걸려서 죄송합니다. 나는 멀리있었습니다.
여기 내 표와 몇 가지 샘플 데이터입니다.
게시물 TBL :
post_id| aluno_id | post_text | post_flags | post_visibility |post_date
--69---|-----9----|Hello world|------0-----|------show_all-- |2015-01-19
--70---|-----2----|Hi friends |------0-----|------friends----|2015-01-19
--71---|-----1----|somedays.. |------2-----|------friends----|2015-01-19
우정 TBL :
id | aluno_id | amizade_id | bloqueado | date
24 |----2-----|-----33-----|-----0-----|2015-01-02
25 |----1-----|-----34-----|-----0-----|2015-01-02
26 |----1-----|-----35-----|-----0-----|2015-01-02
27 |----2-----|-----35-----|-----0-----|2015-01-02
28 |----9-----|-----36-----|-----0-----|2015-01-02
예상 출력, 학생 1과 2 (aluno_id 1 aluno_id 2) 자신의 게시물들이 있기 때문에를 볼 수 있습니다 show_all
으로 설정되어 있기 때문에 학생 9 aluno_id 9의 친구 및 게시물입니다. 그러나 학생 9 aluno_id 9
은 친구가 없어서 자신의 소식을 더 볼 수 없습니다.
OR 'X (Y 및 X는)'WHERE x' 같은된다. – Barmar