MySQL запрос, error 1242

1. HQ-Maker (14.09.2012 / 02:30)
Здрастуйте, кто поможеть делать правильный запрос.

Запрос:
SELECT bans.id,bans.aid,bans.path FROM bans WHERE bans.active = '1' AND bans.enable = '1'
AND (SELECT targeting.cid FROM targeting WHERE targeting.sid = bans.id) = '1'

Ошибка
Subquery returns more than 1 row

Куда-то должен ANY или ALL написать. кто поможет(

2. Петр (14.09.2012 / 07:33)
... AND (SELECT 1 FROM targeting WHERE targeting.sid=bans.id AND targeting.cid=1 LIMIT 1) ?

3. Женек (14.09.2012 / 11:48)
Im-ieee (14 Сентября 2012 / 07:33)
... AND (SELECT 1 FROM targeting WHERE targeting.sid=bans.id AND targeting.cid=1 LIMIT 1) ?

SELECT 1 ? что есть 1?

4. Петр (14.09.2012 / 13:42)
Если условия не выполнятся, то запрос вернет NULL, иначе - 1 (true).

5. HQ-Maker (14.09.2012 / 17:23)
Im-ieee Мне не надо чтоб лимит 1 был. mysql_error выдаеть Subquery returns more than 1 row.
Тоисть результатов больше одного, и он не можеть вывести

6. Михаил (14.09.2012 / 17:34)
Перепиши запрос с использованием соединения двух таблиц bans и targeting, через join

7. Петр (15.09.2012 / 11:26)
5. HQ-Maker, тебе нужно, чтобы все значения совпадали? Тогда так: .. 1=ALL(SELECT targeting.cid ...

8. HQ-Maker (15.09.2012 / 16:09)
Я уже решил. Всем спасибо

URL: https://visavi.net/topics/34431