SELECT `tab1`.`id` FROM `tab`
WHERE `tab1`.`name` IN ('f3243','d3334')
AND count>0
AND 1 IN
(
SELECT 1 FROM `tab2`
WHERE `tab2`.`id`=`tab1`.`id`
AND `tab2`.`vars`='2'
)
Он работает, но из `tab2` вытаскиваются ВСЕ возможные записи, а достаточно ОДНОЙ, просто чтоб знать, что она есть.
Если поставить LIMIT 1:
SELECT `tab1`.`id` FROM `tab`
WHERE `tab1`.`name` IN ('f3243','d3334')
AND count>0
AND 1 IN
(
SELECT 1 FROM `tab2`
WHERE `tab2`.`id`=`tab1`.`id`
AND `tab2`.`vars`='2'
LIMIT 1
)
То запрос не работает, ошибка лимита в подзапросе:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery
В инете пишут, что вроде есть костыль, когда
SELECT * FROM
(SELECT 1 FROM `tab2`
WHERE `tab2`.`id`=`tab1`.`id`
AND `tab2`.`vars`='2'
LIMIT 1) as `tab3`
оборачивают в еще один запрос, чтоб спрятать LIMIT, но это неприятный костыль и у меня на mysql 5.5 он не прокатил.
Что можно еще придумать?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.