0

通話エージェントのステータスを最新の状態に保つためにダッシュボードを作成しています。エージェントはログに複数のレコードを持っています。エージェント ログから最新のステータスを取得する必要があります。私が見つけた唯一の方法は、エージェント テーブルにクエリを実行して、今日行われたステータス変更を含むエージェントを取得し、エージェント ログ テーブルにクエリを実行して最新のステータスを取得することです。

2 つのクエリを組み合わせる方法はありますか。これが私のクエリです

$sql_get_agents = "SELECT id FROM agent WHERE lastchange LIKE '{$today}%'";
            if($dta = mysql_query($sql_get_agents)){

                while($agent = mysql_fetch_assoc($dta)){
                $curr_agent[] = $agent;

                }

                foreach($curr_agent as $agents_online){
                    $get_status_sql = "SELECT a.firstname,a.lastname,al.agentid,al.agent_statusid,s.id as statusid,s.status,MAX(al.datetime) as datetime FROM agent_log al
                    INNER JOIN agent a ON al.agentid = a.id
                    INNER JOIN agent_status s ON a.agent_statusid = s.id
                    WHERE al.agentid = '{$agents_online['id']}'";
                    if($dta2 = mysql_query($get_status_sql)){                               
                        while($agent_status = mysql_fetch_assoc($dta2)){
                        $curr_status[] = $agent_status;                         
                        }
                    }

                }//end for each

                return $curr_status;
            }//end if
4

3 に答える 3

0

WHERE lastchange LIKE '{$today}%'2 番目のクエリに条件を追加して、2 つのクエリを 1 つに結合してみませんか?

于 2013-06-26T15:48:39.813 に答える
0

IN 句を使用すると機能するはずです。

"SELECT a.firstname,a.lastname,al.agentid,al.agent_statusid,s.id as statusid,s.status,MAX(al.datetime) as datetime FROM agent_log al
                    INNER JOIN agent a ON al.agentid = a.id
                    INNER JOIN agent_status s ON a.agent_statusid = s.id
                    WHERE al.agentid IN (SELECT id FROM agent WHERE lastchange LIKE '{$today}%');
于 2013-06-26T15:49:08.743 に答える