所以,我想出了这个查询,执行时效果很好。但是,由于我想使用 Zend 的分页,所以查询必须通过适配器。
这是必须转换的查询:(我已经删除了查询,所以只有重要的部分在这里。我知道你不能运行这个查询 LOL)
//snip
WHERE
city IN (
SELECT
Plaatsnaam
FROM
plaatsnamen
WHERE
Latitude
BETWEEN
?
AND
?
AND
Longitude
BETWEEN
?
AND
?
)
//snip
工作得很好!但是..如您所见,我使用的是“高级” WHERE IN case。不知何故,我无法得到这个转换,我被卡住了。
这是它必须转换为:
$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 正在那里重写一些奇怪的东西。
我现在有点卡住了,任何帮助都会很棒!