1

Zend_Db_Select に問題があります。使用してからずっと前のことです (-: 次のような結果配列が必要です:

USER 0
 ID -> 1
 MY_NUMBERS -> (array)
    -> 1 ONE
    -> 2 TWO

USER 1 (array)
 ID -> 2 (int)
 MY_NUMBERS -> (array)
    -> 1 ONE
    -> 2 TWO
    -> 3 THREE
    -> 10 TEN

これは私のクエリの一部です

$select->from(array('USERS' => $table))
    ->join(
        array('USERS_NUMBERS' => 'USERS_HAS_NUMBERS'), // many to many
        'USERS.ID = USERS_NUMBERS.USER_ID'
    )
   ->joinLeft(
        array('N' => 'NUMBERS'),
        'USERS_NUMBERS.NUMBER_ID = NUMBERS.ID', 
        array('MY_NUMBERS' => 'NUMBERS.NUMBER')
   );

しかし、現時点では、既存の関係ごとに 1 つのレコードが返されるため、ユーザー 1 が 5 つの数字を持っている場合、このユーザーに対して 5 つの完全なレコードが返されます。

現時点では、必要な配列を取得するために選択が間違っていることはわかっていますが、その方法を考えなければなりません:-)

4

1 に答える 1

1

Zend_Db_Table を使用してそこにリレーションを設定すると、コードも読みやすくなります。http://framework.zend.com/manual/1.12/en/zend.db.table.relationships.html

次に、ユーザーを取得したら、次のようなことができます。

$user->findDependentRowset('numbers');
于 2013-02-07T15:55:27.780 に答える