mysql - Mysql - 我有 3 个独特的表,需要提示以获取计数的详细信息
问题描述
我有 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_count
FROM tparking p,ttokens t LEFT join ttokens_md m ON t.trefn_id = m.trefn_id
WHERE t.pdetail_id = p.pdetail_id
解决方案
您可以尝试使用JOIN
with subquery 来获取您的计数而不是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
,
推荐阅读
- latex - 如何将两个不同数字的方程放在一行中?
- reactjs - JSDoc 在使用 webpack 开发服务器的 Lerna monorepo 项目中的本地包中不起作用,但在发布到包注册表时起作用
- apache - 为每个页面重写 url 中的 get 参数
- python - 有没有办法在浏览器中预览 pdf/image 文件?
- reactjs - 使用 props 覆盖 React 组件的基本样式
- linux - Cassandra-i 能够通过 sudo 命令连接但无法通过 cqlsh 连接
- vb.net - Vb.net,实例化一个类
- android - 如何修复:无法启动服务 Intent - RNPushNotificationRegistrationService
- php - 尝试在使用回声行时将发送者和接收者与内部联合表分开
- php - SQLSTATE [HY093]:无效参数编号错误,即使我使用的是 bindParam 而不是执行