我有3个相互关联的表,我想从两个表中选择列,并从表3中计数。如果有人对此有所了解,那么任何提示都将不胜感激。

以下是我尝试过的SQL,但计数不断重复

SELECT distinct p.p_id, p.p_f6, p.p_l4,m.m_id, ( SELECT COUNT(*) FROM ttokens t where t.pdetail_id = p.pdetail_id ) AS token_countFROM tparking p,ttokens t LEFT join ttokens_md m ON t.trefn_id = m.trefn_idWHERE t.pdetail_id = p.pdetail_id

最佳答案

您可以尝试将JOIN与子查询一起使用以获取计数,而不是selcet子查询。

SELECT  p.p_id, p.p_f6, p.p_l4,m.m_id,t.cnt
FROM tparking p
JOIN (
    SELECT pdetail_id,COUNT(*) cnt
    FROM ttokens
    GROUP BY pdetail_id
) t ON t.pdetail_id = p.pdetail_id
LEFT join ttokens_md m ON t.trefn_id = m.trefn_id


注意

我会用JOIN代替带有,条件的where逗号来连接两个表,,是一种旧样式。

08-06 17:47