Итак, я придумал этот запрос, который отлично работает при выполнении. Однако, поскольку я хочу использовать разбиение на страницы из Zend, запрос должен быть через адаптер.
Это запрос, который нужно преобразовать: (я вырезал запрос, поэтому здесь только важная часть. Я знаю, что вы не можете выполнить этот запрос, LOL)
//snip
WHERE
city IN (
SELECT
Plaatsnaam
FROM
plaatsnamen
WHERE
Latitude
BETWEEN
?
AND
?
AND
Longitude
BETWEEN
?
AND
?
)
//snip
Работает отлично! Однако... Как видите, я использую "расширенный" вариант WHERE IN. Почему-то я не могу преобразовать это, и я застрял.
Вот во что его нужно преобразовать:
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select('gethousecity.id, city')
->from('gethousecity')
->join('houses_props', 'houses_props.id = gethousecity.id')
->where('city IN ()') // HOW TO CONVERT THE UPPER QUERY TO FIT IT HERE?
->where('is_online = 1')
->where('houses_props.prop_name = ?', 'something')
->where('houses_props.prop_value BETWEEN ? AND ?', array(1,2));
Я вообще не нашел никакой документации о том, как преобразовать запрос в какой-либо формат, который подходит здесь. У кого-нибудь есть идеи? В основном потому, что мне нужно вставить какие-то значения, а ZF переписывает там какое-то странное дерьмо.
Я немного застрял сейчас, любая помощь была бы потрясающей!