Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL连接查询构造_Mysql - Fatal编程技术网

MySQL连接查询构造

MySQL连接查询构造,mysql,Mysql,我有两张桌子:工作和活动。 作业由零个或多个活动组成 JOBS (id,client_name,job_cost): 1, 'Kelly, Peter', '139.00' ACTIVITIES (id,job_id,activity_name,activity_cost): 1, 1, 'Activity A', '40.00' 2, 1, 'Activity B', '59.00' 3, 1, 'Activity C', '40.00' 如何编写查询以检索以下字段: DESIR

我有两张桌子:工作和活动。 作业由零个或多个活动组成

JOBS (id,client_name,job_cost):

1, 'Kelly, Peter', '139.00'


ACTIVITIES (id,job_id,activity_name,activity_cost):

1, 1, 'Activity A', '40.00'

2, 1, 'Activity B', '59.00'

3, 1, 'Activity C', '40.00'
如何编写查询以检索以下字段:

DESIRED OUTPUT FIELDS:

job_id, client_name, job_cost, total_cost_of_activities, number_of_activities
作为MySQL的任何帮助都不是我的强项

SELECT
  JOBS.*,
  SUM(ACTIVITIES.activity_cost) AS total_cost_of_activities,
  COUNT(ACTIVITIES.id) AS number_of_activities
FROM
  JOBS
  INNER JOIN ACTIVITIES on ACTIVITIES.job_id=JOBS.id
GROUP BY JOBS.id
编辑:我还没有在MySQL上工作过。我假设MySQL的基本SQL语法保持不变

SELECT j.id, j.client_name, j.job_cost, 
COUNT(a.id) AS number_of_activities, SUM(activity_cost) as total_cost_of_activities
FROM Jobs AS j
INNER JOIN Activities AS a ON j.id = a.job_id
GROUP BY j.id, j.client_name, j.job_cost

请注意:数字类型不应存储为
VARCHAR
s(您用引号将它们写出来)。为了提高速度和节省空间,您应该使用数字数据类型,如DECIMAL。

+1,因为您希望在一个查询中执行此操作,而不是在多个查询和服务器端代码中执行此操作。我认为您需要一个
分组依据
too@yshavit谢谢,
ERR 0xDEADBEEF:复制粘贴作业不完整
SELECT j.id, j.client_name, j.job_cost, 
COUNT(a.id) AS number_of_activities, SUM(activity_cost) as total_cost_of_activities
FROM Jobs AS j
INNER JOIN Activities AS a ON j.id = a.job_id
GROUP BY j.id, j.client_name, j.job_cost