-1

ログインしたエージェントにすべての苦情を表示するアプリケーションがあります。同じ苦情画面を見ることができるエージェントが 100 人います。たとえば、エージェント A とエージェント B は、ログインしたときにすべての苦情を見ることができます。

> Complaint_id  Complaint_detail
        1            complaint_1    
        2            complaint_2    
        3            complaint_3    

ここでの問題は、すべてのエージェントが簡単にコメントを付けることができる機能を追加するか、次のようなリマインダーを言うことができるようにする必要があることです (agentA put comment : 明日、このコメントに取り組みます)。したがって、このコメントは agentA のみに表示されます。

この実装のために、「comment」列と「user_id」列を追加する、complaint_detail という名前の新しいテーブルを作成しました。

苦情を表示するには、クエリを記述します

    select complaint.Complaint_name,complaint.User_ID from complaint 
left outer join complaint_detail on complaint.Complaint_id = complaint_detail.complaint_id

このクエリは、ユーザーをフィルタリングするとすべてのレコードを表示するようになり、これを解決するためにそのユーザーのレコードのみが表示されます。

    select * from (select complaint.Complaint_name,complaint.User_ID from complaint 
left outer join complaint_detail on complaint.Complaint_id = complaint_detail.complaint_id
complaint_detail.complaint_info_id
) asdf

user_id = 'agentA' または User_ID が null の場合

select * from (
select complaints.complaint_id,complaints.complaint_detail,   complaints_detail.comment,complaints_detail.user_id from complaints
left outer join complaints_detail on complaints.Complaint_id = complaints_detail.complaint_id
) asdf
where user_id = 'agentA'
or User_ID is null

complaint_id    complaint_detail    comment        user_id
         1             complaint_1         complaint_1  agentA
         2             complaint_2         complaint_2  agentA
         3             complaint_3           null            null

エージェントBの場合

complaint_id    complaint_detail    comment        user_id
     1             complaint_1          complaint1_ agentB
     3             complaint_3           null            null

すべてのユーザーがすべての苦情とコメントのみを表示できるようにするにはどうすればよいでしょうか。テーブル構造を変更するか、クエリでこれを行うことができますか?

4

1 に答える 1

0

このような何かがそれを行う必要があります:

select * from complaints cmp
left outer join comments com on cmp.id=com.complaint_id
and com.user_id='agentA' or com.user_id is null 

これは、存在する場合は苦情に関連するコメントテーブルからデータを取得し (左結合)、コメントをエージェントのコメントに制限するか、コメントにユーザー ID がないものに制限します。

もちろん、苦情とコメントのテーブルからすべての列を取得したくない場合は、select で列を指定できます。

于 2013-08-14T15:33:20.567 に答える