【发布时间】:2011-08-13 04:34:14
【问题描述】:
我的数据库中有两个表(工作和类别),我需要一个 SQL 帮助来选择类别并计算每个类别中的工作数量。如果有帮助,我正在使用 MySQL。
到目前为止
SELECT * from categories c left join jobs j on (c.job_id = j.job_id);谢谢
【问题讨论】:
-
我的意思是你的数据库结构 - 表格是什么样的以及它们有哪些列。
我的数据库中有两个表(工作和类别),我需要一个 SQL 帮助来选择类别并计算每个类别中的工作数量。如果有帮助,我正在使用 MySQL。
到目前为止
SELECT * from categories c left join jobs j on (c.job_id = j.job_id);谢谢
【问题讨论】:
假设你的表结构是这样的:
类别
身份证、姓名
工作
ID、CategoryID、名称
SELECT Category.Name, COUNT(Job.ID)
FROM Job
INNER JOIN Category ON Job.CategoryID = Category.ID
【讨论】:
INNER JOIN 将仅包含连接表中匹配的记录,而LEFT OUTER JOIN 将为不匹配的记录返回空值。感谢@Jeff Atwood,有一篇很棒的博客文章,其中包含关于连接的维恩图。 codinghorror.com/blog/2007/10/…
... FROM categories LEFT JOIN jobs ON ...(即左连接左侧的categories)。
假设您有一个 CategoryName 列...
选择 c.CategoryName, 数数(*) 从类别 c 在 j.job_id = c.jobID 上加入工作 j 按 c.CategoryName 分组【讨论】: