2012-05-16 2 views
0

아래 SQL을 보면 쿼리를 정렬하는 데 어려움이 있습니다. 나는 본질적으로 2 개의 카테고리에있는 아티스트의 이미지를 하나의 호출로 결합해야하지만, 아래 SQL을 사용하면 첫 번째 카테고리의 모든 이미지뿐만 아니라 두 번째 카테고리의 모든 아티스트의 모든 이미지를 가져옵니다. 특정 아티스트에게. AND 호출을 사용하면 둘 다에서 이미지 만 가져옵니다. 그래서 기본적으로 잘하면이 말이 된 것입니다. 모든 도움을 주시면 감사하겠습니다.mysql에서 레코드를 선택하는 경우

SELECT i.img_name, i.ordered_by, i.img_description, a.artist_path_name, a.artist_id, a.artist_dir, a.artist_name, a.first_name, a.last_name, a.artist_titletag, a.artist_metadesc, a.artist_metakey, ck.catKey_id, ck.keyword 
     FROM images AS i JOIN artists AS a USING (artist_id) 
     JOIN img_cat_table AS imc USING (img_id) 
     JOIN catKeys AS ck USING (catKey_id) 
     WHERE artist_name = 'j' AND catKey_id = 5 OR catKey_id = 1 

답변

2

당신은 당신이 사용하는 경우에도 다음과 같은 WHERE 절 순서를

WHERE (artist_name = 'j') AND (catKey_id = 5 OR catKey_id = 1) 

을 결정하기 위해 괄호를 사용하고자하는 또는 것 모두 AND/OR를 사용하는 경우 :

WHERE (artist_name = 'j') AND (catKey_id IN (5, 1)) 
관련 문제