0

私は2つのテーブルのこのような構造を持っています:

z_notes:

| i_resident_id | resident_fname | resident_lname | i_communication_log | facility_id | dt_note_created | 

ユーザーの役割:

| fk_role_id | fk_user_id | 

z_notes で実行することを意図したクエリは、正常に機能しており、完全に機能しています。ここにあります。

"SELECT `i_resident_id` AS ID, resident_fname AS FirstName, `resident_lname` AS LastName, 
                        SUM(CASE i_communication_log WHEN 1 THEN 1 ELSE 0 END ) AS Critical_Notes, 
                        SUM(CASE i_communication_log WHEN 0 THEN 1 ELSE 0 END ) AS Routine_Notes,
                        SUM(1) AS Total_Notes
                        FROM z_notes
                        WHERE dt_note_created > '$from'
                        AND dt_note_created < '$to' AND
                        facility_id = '$facility_id'
                        GROUP BY v_resident_fname 
                        ORDER BY Total_Notes $asc_des";

これは以下を返します:

ID |    FirstName |     LastName |  Critical_Notes |    Routine_Notes |     Total_Notes

これは、上記のクエリで結合が必要な場所です。外部キーは次のように作成されます。

i_resident_idへのz_notesリンクfk_user_iduser_roles

したがって、i_resident_id役割fk_role_id== 4 の居住者 ( ) はクエリから除外する必要があります。つまり、「4」であってはならないテーブルに列がi_resident_idあると等しいようなものであるWhere句にもっとある必要があります。fk_user_idfk_role_id

ご意見をお待ちしております。:)

4

3 に答える 3

0

試す:

SELECT `i_resident_id` AS ID, resident_fname AS FirstName, `resident_lname` AS LastName, 
                        SUM(CASE i_communication_log WHEN 1 THEN 1 ELSE 0 END ) AS Critical_Notes, 
                        SUM(CASE i_communication_log WHEN 0 THEN 1 ELSE 0 END ) AS Routine_Notes,
                        SUM(1) AS Total_Notes
                        FROM z_notes
                        LEFT JOIN user_roles ON z_notes.i_resident_id = user_roles.fk_user_id
                        WHERE dt_note_created > '$from'
                        AND dt_note_created < '$to'
                        AND facility_id = '$facility_id'
                        AND user_roles.fk_role_id != 4
                        GROUP BY v_resident_fname 
                        ORDER BY Total_Notes $asc_des";

私はちょうどあなたが言った、結合とwhere句を追加しました

于 2013-08-01T17:35:12.003 に答える