2012-04-18 4 views
0

мне нужно сделать запрос, который будет выбрать все имена и все ники из некоторой таблицы, но только там, где идентификатор в некоторых array.This является Запрос:Запрос с тремя условиями

SELECT n. * FROM nikovi n 
INNER JOIN sajt_nikovi s ON n.id = s.nik 
WHERE s.sajt = '50' and  n.nadimak like '%ana%' or n.ime like '%ana%' 

И он нашел все записи из таблица, где n.ime, как «% ana%», а не только для этого соединения. есть ли у кого-нибудь идеи?

+0

использовать скобки, чтобы сделать правильный запуск вашего запроса – Peeyush

ответ

4

И привязывается сильнее ИЛИ, что означает, что он будет оценивать что-то вроде;

WHERE (s.sajt = '50' and n.nadimak like '%ana%') or n.ime like '%ana%' 

Если вы имеете в виду что-то еще, вам нужно добавить круглые скобки, чтобы они поняли базу данных. В этом случае вам нужно будет изменить его;

WHERE s.sajt = '50' and (n.nadimak like '%ana%' or n.ime like '%ana%') 
+0

вы быстрее, чем у меня , я просто пишу тот же ответ, и вы попали в сообщение .. :-) – Peeyush

+0

Tahnk вам очень, очень, очень! Он отлично работает! –

1

Сгруппируйте OR:

SELECT n. * 
FROM nikovi n 
INNER JOIN sajt_nikovi s 
ON n.id = s.nik 
WHERE s.sajt = '50' 
AND (n.nadimak LIKE '%ana%' OR n.ime LIKE '%ana%') 
0

Всегда используйте скобки, когда вы смешиваете И и ИЛИ

SELECT n. * FROM nikovi n INNER JOIN sajt_nikovi s ON n.id = s.nik WHERE s.sajt = '50' AND (n.nadimak LIKE '%ana%' OR n.ime LIKE '%ana%') 
Смежные вопросы