2

次のコードがあります。

$selectColumns= array('user_id.user_email',
                    'user_details.first_name', 
                    'user_details.last_name', 
                    'user_details.zip', 
                    'user_details.store_id');
$result = $handle->select()->from('user_id')
                           ->where('uid=?', $uid)
                           ->columns($selectColumns)
                           ->join('user_details', 'user_id.uid = user_details.uid')
                           ->query(ZEND_DB::FETCH_OBJ);

実行後、次のエラーが表示されます。

Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: '
Integrity constraint violation: 1052 Column 'uid' in where clause is ambiguous

私は自分が間違っていることを理解しようとしています。何か助けはありますか?

4

2 に答える 2

6

問題はuid=?あなたのWHERE句にあります。uid列が両方のテーブルにあるためuser_iduser_detailsMySQL は実際にどちらの列を使用するかを判断できません。したがって、あなたはしなければなりません

// [...]
->where('user_id.uid=?', $uid)
// [...]
于 2009-06-07T19:26:30.793 に答える
-1

ログで生成された sql クエリを確認します。結合の後に where 句を入れる必要があるかもしれません。

于 2009-06-07T19:21:19.570 に答える