查询MySQL以显示表关系

时间:2015-06-20 01:23:09

标签: php mysql regex

我有3张桌子。 2参考表和一个表交易。

  1. 表puskesmas
  2. 的MySQL>选择id,来自puskesmas的nama;

    +----+----------------------+
    | id | nama                 |
    +----+----------------------+
    |  1 | BAMBANGLIPURO        |
    |  2 | BANGUNTAPAN          |
    |  3 | BANTUL               |
    |  4 | DLINGO               |
    |  5 | IMOGIRI              |
    |  6 | JETIS                |
    |  7 | KASIHAN              |
    |  8 | KRETEK               |
    |  9 | PAJANGAN             |
    | 10 | PANDAK               |
    +----+----------------------+
    
    1. 表poli
    2. 的MySQL> select * from poli;

      +----+---------------+
      | id | nama          |
      +----+---------------+
      |  1 | BP            |
      |  2 | KIA           |
      |  3 | GIGI          |
      |  4 | JIWA          |
      +----+---------------+
      
      1. 表loket
      2. 的MySQL>从loket limit 10中选择pasien_id,poli_id,puskesmas_id;

        +-----------+---------+--------------+
        | pasien_id | poli_id | puskesmas_id |
        +-----------+---------+--------------+
        |         1 |       1 |            1 |
        |         5 |       2 |            2 |
        |         1 |       1 |            3 |
        |         9 |       3 |            4 |
        |         1 |       3 |            5 |
        |         5 |       2 |            1 |
        |         1 |       1 |            3 |
        |         8 |       1 |            2 |
        |        10 |       3 |            6 |
        |         5 |       2 |            5 |
        +-----------+---------+--------------+
        

        我想显示访问puskesmas表的总数(计数)。然后制作字段all_total 我希望在poli_id = 1的情况下进行患者就诊并将其用作bp列。其他poly与

        相同
        +----+----------------------+--------------+------+------+------+------+
        | id | nama                 | All Total    |  BP  |  KIA | GIGI | JIWA |
        +----+----------------------+--------------+------+------+------+------+
        |  1 | BAMBANGLIPURO        |     30       |  10  |  3   |  15  |  2   |
        |  2 | BANGUNTAPAN          |     35       |  20  |  4   |  11  |  0   |
        |  3 | BANTUL               |     15       |  10  |  0   |  5   |  0   |
        |  4 | DLINGO               |     12       |  10  |  1   |  1   |  0   |
        |  5 | IMOGIRI              |     10       |  5   |  2   |  1   |  2   |
        |  6 | JETIS                |     25       |  13  |  3   |  7   |  2   |
        |  7 | KASIHAN              |     20       |  10  |  10  |  0   |  0   |
        |  8 | KRETEK               |     23       |  20  |  1   |  1   |  1   |
        |  9 | PAJANGAN             |     10       |  5   |  1   |  3   |  1   |
        | 10 | PANDAK               |     0        |  0   |  0   |  0   |  0   |
        +----+----------------------+--------------+------+------+------+------+
        

        我试图让查询显示如下,但始终无法保持。任何人都可以帮助进行此类查询所需的结果

        我试过这样的查询: 选择puskesmas_id,   sum(poli_id = 1然后1 else 0 end的情况)bp,   sum(poli_id = 5然后0其他1结束的情况)gigi,   count(id)总计 来自loket puskesmas_id小组

        结果如下:

        +--------------+------+------+-------+
        | puskesmas_id | bp   | gigi | total |
        +--------------+------+------+-------+
        |            1 |   97 |  126 |   143 |
        |            6 |   74 |  185 |   210 |
        |            8 |  131 |  179 |   190 |
        |            7 |   90 |   92 |    98 |
        |            2 |   33 |   39 |    54 |
        |            4 |  158 |  248 |   263 |
        |            3 |   66 |   68 |    72 |
        +--------------+------+------+-------+
        

        但是puskesmas_id值0在查询时不执行数据

0 个答案:

没有答案