我正在尝试连接两个表,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
答案 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;