如何进行查询:
$name = $this->_dbTable->info('name');
$result = $this->_dbTable->select()->from($name)->setIntegrityCheck(false);
$result->join(array('t' => "$name.tipo")), "t.id = $name.id");
其中'$ name.tipo'是加入的表名。
答案 0 :(得分:2)
根据tipo
的值,您无法每行加入不同的表格。 SQL要求在准备查询时修复表,表不能随着从给定列中提取的数据值的发现而改变。
您的设计称为Polymorphic Associations,它是一种非关系设计。在SQL中执行此操作非常尴尬。
有关其他选择,请参阅我的演示文稿Practical Object Oriented Models In SQL。