Mysql 从另一个表计算列的两条SQL语句
我有一个表,用于存储有关项目的信息,例如项目名称和所有者等 我有另一个表,其中有许多与一个项目相关的任务 如何运行查询以显示任务表中所有打开的任务 以下是我想要的结果集:Mysql 从另一个表计算列的两条SQL语句,mysql,sql,Mysql,Sql,我有一个表,用于存储有关项目的信息,例如项目名称和所有者等 我有另一个表,其中有许多与一个项目相关的任务 如何运行查询以显示任务表中所有打开的任务 以下是我想要的结果集: Project Name Project Owner Open Tasks Test 1 Test Owner 5 Test 2 Test Owner 0 我的sql语句: SELECT [Project Name] as Name1, [Project
Project Name Project Owner Open Tasks
Test 1 Test Owner 5
Test 2 Test Owner 0
我的sql语句:
SELECT [Project Name] as Name1, [Project Owner]
FROM ProjectNames
UNION
SELECT distinct(count)
FROM ActionItems
WHERE ProjectName = Name1
Order By Name1
我想那会按你的要求进行的。相应地更改列/表名称。这样,当项目有任务时,查询的效果会非常好。如何显示包含0个任务的项目?如果我正确理解了您想要的内容,请使用左连接而不是内连接。我尝试了这种方法,但结果没有改变。这是我的查询:`SELECT pn.[Project Name],pn.[Project Owner],COUNT(ai.ID)作为'Open Tasks',projectname作为pn,Left JOIN ActionItems作为ai上的ai。[Project Name]=pn.[Project Name]其中ai.Status'cancelled'和ai.Status'Completed'按pn分组。[Project Name],[Project Owner]按“打开的任务”排序“很抱歉,我有点累了,我想问题出在WHERE子句中,她也排除了,结果是你没有任何任务。你能试试这样的方法并告诉我它是否工作:WHERE(ai.Status“Cancelled”和ai.Status“Completed”)或
打开的任务为空。。。其他一切都应该保持不变……正如上面@AleksandarMiladinovic所建议的。使用where in
尽管->where ai.Status NOT in('Cancelled',Completed')或…
SELECT
pn.`Project Name`,
pn.`project owner`,
COUNT(ai.actions) AS `Open Tasks`
FROM ProjectNames AS pn
INNER JOIN ActionItems AS ai
ON ai.`ProjectName` = pn.`Project Name`
GROUP BY pn.`Project Name`
ORDER BY `Open Tasks`