尝试使用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中进行多个表连接。我不确定如何使用他们的查询构建器在多个表之间进行连接。
感谢任何帮助!
Ĵ
答案 0 :(得分:4)
喜欢的东西:
$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');
那会让你到处找个地方。我没有测试它,因此可能存在一些错误。
答案 1 :(得分:1)
格式:
$db->select()->from('table_name')->join('...')->join('...')
效果很好!
感谢你们两位海报的这个信息!帮我解决了相当困难! (摘要表模型哦,我的!!)大声笑
Ps:对于即将使用上述相同格式的其他人,请记住,列名将被具有相同列名的后一个表覆盖。 快乐的编码!