2012-05-16 6 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

если вы используете как AND/OR, то вам нужно использовать круглые скобки для определения порядка

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

Или даже использовать следующую WHERE пункт:

WHERE (artist_name = 'j') AND (catKey_id IN (5, 1)) 
Смежные вопросы