3

クエリの実行方法:

$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' は、結合するテーブル名です。

4

1 に答える 1

2

の値によっては、行ごとに異なるテーブルに参加することはできませんtipo。SQL では、クエリを準備するときにテーブルを修正する必要があります。特定の列からフェッチされたデータ値が検出されると、テーブルは変更できません。

あなたのデザインはPolymorphic Associationsと呼ばれ、非リレーショナル デザインです。これを SQL で行うのは非常に厄介です。

いくつかの代替案については、私のプレゼンテーションPractical Object Oriented Models In SQLを参照してください。

于 2013-03-12T00:59:30.840 に答える