Попытка реплицировать следующий запрос с помощью Zend_Db_Select
. Любые указатели?
SELECT compounds.id as compounds_id, reactions.id as reactions_id, reaction_compound.number as reaction_compound_number FROM compounds, reactions, reaction_compound WHERE compounds.id IN (68,74,112) AND compounds.id = reaction_compound.compound AND reactions.id = reaction_compound.reaction;
В частности, некоторые проблемы, с которыми я столкнулся, – это объединение нескольких таблиц в Zend. Я не уверен, как сделать объединение нескольких таблиц с помощью своего построителя запросов.
Любая помощь приветствуется!
J
Что-то вроде:
$compoundIds = array(68,74,112); $select = $db->select() ->from('compounds', array('compounds_id' => 'id') ->where('compounds.id in ( ? )', $compoundIds) ->join('reaction_compound', 'compounds.id = reaction_compound.compound', array('reaction_compound_number' => 'number')) ->join('reactions', 'reactions.id = reaction_compound.reaction', array('reaction_id' => 'id');
Это должно привести вас куда-нибудь. Я не тестировал его, поэтому там могут быть некоторые ошибки.
Формат:
$db->select()->from('table_name')->join('...')->join('...')
Прекрасно работает!
Спасибо вам обоим плакатам за эту информацию! Помог мне решить довольно doozy! (Абстрактные модели таблиц о, мой !!) Lol
Ps: Другим, кто должен использовать тот же формат, подробно описанный выше, помните, что имена столбцов будут перезаписаны последними таблицами с одинаковыми именами столбцов. Счастливое кодирование!