我的SQL不仅仅是有点生疏,而且我在解决这个问题时遇到了困难,所以任何帮助都将不胜感激。MySQL获取相关表的计数
我有三个表:
sessions
---------------
id
session_visits
---------------
id | session_id
searches
---------------
id | session_visit_id
而且我想与总访问量和搜索每个会话,这是由session_visits表链接的所有会话的列表。我可以很好地访问这些访问,但是无法获取每个会话的搜索总量。
到目前为止,我已经得到了
SELECT *,(SELECT Count(*)
FROM session_visits
WHERE session_id = sessions.id) AS num_visits,
(SELECT Count(*)
FROM searches
WHERE session_visit_id = (SELECT * FROM session_visits
WHERE session_id = sessions.id)) AS total_searches
FROM sessions
这是失败的每个算!我是以正确的方式开展这项工作还是从根本上做错了?
为什么不使用连接?你还需要有一个'group by' –
'SELECT * FROM session_visits'应该是'SELECT id FROM session_visits'。并确保该查询返回单行,否则您需要限制它(例如LIMIT1) – Uriil
生锈?如果您愿意,可以考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry