从相关表

时间:2017-10-25 12:12:42

标签: mysql

我正试图从每次招标的表格中获得所有pid的数量。

招标表的位置为:id,user_id

和出价表有:id,tender_id,user_id

例如,我打开了user_id页面:39。

有以下标书:1,2,3,4 并且出价表具有出价值:

id |  Tender_id | user_id  |  
1  |  1         |   40     |
2  |  1         |   41     |
3  |  2         |   40     |

现在,我希望得到每个具有约束力的tender_id的计数,并在此招标表中显示id 39的用户:

   | id | total binding |  total binding|
   | 1  | 2             |   1           |
   | 2  | 1             |   2           |

我使用过这段代码:

    $dbs= $this->db->select('COUNT(bidding.tender_id) AS count')
where('bidding.tender_id', $tender->id); 
    echo count($dbs);

但结果是错误的,这让我觉得所有结果都是1 !!

任何帮助? -------更新---------- 我也用过它并得到了错误的结果:

$this->db->select('bidding.tender_id' );
                                                                            $this->db->from('bidding');
                                                                            $this->db->join("tenders", "bidding.tender_id = tenders.id", 'left');
                                                                            $where = "bidding.tender_id=".$tender->id;
                                                                            $this->db->where($where);
                                                                            $this->db->group_by('tenders.id');
                                                                            $res = $this->db->get();
                                                                            echo count($res);

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

$this->db->select('bidding.tender_id, COUNT(*) AS count');
  $this->db->from('bidding');
  $where = "bidding.tender_id=".$tender->id." AND user_id=39";
  $this->db->where($where);
  $this->db->group_by('tender_id');
  $res = $this->db->get();
  echo count($res);

答案 1 :(得分:0)

我用该查询解决了这个问题:

Mi