我有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
逗号来连接两个表,,
是一种旧样式。