加入两个表得到计数而不使用任何where条件

时间:2016-11-21 12:39:55

标签: sql

我正在尝试连接两个表,prcshd(头表)和prcsdt(详细信息表),并且需要在prcsdt(详细信息表)中获取prod_prcshd_id的计数而不使用where(如果需要可以使用子查询)。不确定......

试过像

select distinct count(b.prod_prcshd_id), b.prod_prcshd_id
from tra_pharmacy_prod_prcshd a join
     tra_pharmacy_prod_prcsdt b
     on b.prod_prcshd_id = a.id
group by b.dt_id

我的桌子:

prcshd(头表)

id(pk) | medi_name_id  |  med_prep_id
 1        83                  1
 2        83                  2

prcsdt(明细表)

dt_id(pk) | prod_prcshd_id(fk) | type_id | prod_name_id |medi_prep_id
1            1                  4          83             1
2            1                  5          83             1
3            1                  6          83             1
4            2                  4          83             2

仍然没有运气。

id  | prod_prcshd_id | medi_name_id
1         3              83
2         1              83

1 个答案:

答案 0 :(得分:1)

我不确定这是否能解决您的问题。但是,您几乎从不需要select distinct group by。我怀疑你想要其中一个:

select b.prod_prcshd_id, count(b.prod_prcshd_id)
from tra_pharmacy_prod_prcshd a join
     tra_pharmacy_prod_prcsdt b
     on b.prod_prcshd_id = a.id
group by b.prod_prcshd_id;

在大多数情况下,您甚至不需要join

select ppp.prod_prcshd_id, count(*)
from tra_pharmacy_prod_prcsdt ppp
group by ppp.prod_prcshd_id;