亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法合并三個 select 語句的結果

無法合并三個 select 語句的結果

PHP
一只萌萌小番薯 2023-03-11 16:29:39
我試圖同時從這三個 select 語句中獲得結果,但我無法這樣做。所以請幫助我糾正我的錯誤。如果您發現我的英語或問題方法不好,請不要給我差評。 $sql = $conn->prepare("SELECT Count(c.c_id) from complaints c, users u,cell_num cn where c.status=? AND c.u_id_fk=u.u_id AND u.u_id=cn.u_id_fk"); $sql->bind_param("i",$statOpen); $sql .= $conn->prepare("SELECT Count(c.c_id) from complaints c, users u,cell_num cn where c.status=? AND c.u_id_fk=u.u_id AND u.u_id=cn.u_id_fk"); sql->bind_param("i",$statProgress); $sql .= $conn->prepare("SELECT Count(c.c_id) from complaints c, users u,cell_num cn where c.status=? AND c.u_id_fk=u.u_id AND u.u_id=cn.u_id_fk"); $sql->bind_param("i",$statClosed);                        $sql->execute();                        $sql->store_result();                        if($sql->num_rows > 0)                        {                            $sql->bind_result($c_id);                            while( $sql->fetch() )                            {                                $user[] = array(                               'c_id'=>$c_id                             );                            }                            echo json_encode($user);                            $sql->close();                        }
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

您可以進行條件聚合:


select 

    sum(c.status = ?) cnt_open,

    sum(c.status = ?) cnt_progress,

    sum(c.status = ?) cnt_closed

from complaints c

inner join users u on u.u_id = c.u_id_fk

inner join cell_num cn on cn.u_id_fk = u.u_id

此查詢一次接受三個參數,它們對應于您傳遞給三個單獨查詢的三個值。


請注意,我修改了查詢以使用標準連接(使用on關鍵字)而不是老式的隱式連接(在子句中使用逗號from):不應在新代碼中使用這種陳舊的語法。


where您可以通過添加一個對三個可能的 es 進行過濾的子句來提高查詢效率status(這需要將每個參數傳遞兩次):


where c.status in (?, ?, ?)


查看完整回答
反對 回復 2023-03-11
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

你可以這樣做,它更優化


select c.statut,count(c.c_id)

from complaints c

inner join users u on u.u_id = c.u_id_fk

inner join cell_num cn on cn.u_id_fk = u.u_id

where c.status in (?, ?, ?)

group by c.status


查看完整回答
反對 回復 2023-03-11
  • 2 回答
  • 0 關注
  • 129 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號