2012-02-13 3 views
0

에 다른 테이블의 행 조건을 추가 할 수 없습니다 :내가이 쿼리를 내 SQL 쿼리

SELECT ... FROM ... WHERE EXISTS ... AND WHERE 'visible' = 1 of 'ft_projetcs' TABLE 

나는 많은 것을 시도해 봤지만 잘못된 생각을하고 있습니다. 어떤 도움이 필요합니까?

+0

이 질문은 [이]로 계속 (이라고 생각 http://stackoverflow.com/questions/9247298/mysql-join-with-3 -tables-trick) –

답변

0

모르겠다. 문제가 옳았다는 것을 알고 있지만 내부 결합을 원한다고 들릴 수 있습니까? 이런 식으로 뭔가를 시도 : 당신이 당신의 가입 조건을 조정해야 물론

SELECT category_name, category_id, category_slug 
FROM categories 
inner join ft_projects on ft_projects.category_id = categories.id 
WHERE EXISTS (
    SELECT 1 
    FROM assigned_categories 
    WHERE assigned_categories.assigned_category_id = categories.category_id 
) 
and ft_projects.visible = 1 

을의는 "ft_projects.category_id = categories.id에"그냥 예입니다.

중요한 것은 : 당신이 현재 상태에서 달성하고자하는 것이 내부 조인을 통해 더 잘 해결된다고 생각합니다. (적어도 귀하의 열 이름을 기반으로합니다).

0

좋아도 그것을이했던 트릭 :

SELECT category_name, category_id, category_slug 
FROM categories 

    WHERE EXISTS (
     SELECT 1, visible 
     FROM assigned_categories 

     JOIN posts ON assigned_categories.assigned_post_id = post_id 

     WHERE assigned_categories.assigned_category_id = ft_categories.category_id AND visible = 1 
    )