繁体   English   中英

MySQL从两个表中选择查询

[英]MySQL select query from two tables

我有两个表: 用户作品

我需要写选择查询计算来自用户表的不同名称,其中来自工作表的work_status = 1

在此处输入图片说明

总计为 :3约翰,1汤姆

我需要得到结果:
约翰2( 2因为一个约翰work_status = 0 ant这不算数
汤姆1

我写了可以选择不同名称的select,只需要比较work_status。

SELECT name,COUNT(*) as num FROM users GROUP BY name

我的查询返回:

在此处输入图片说明

您的问题有问题。 因此,这里有两个解决方案。

如果有三个不同的约翰在公司工作,这是您的查询

SELECT u.name, COUNT(*) as num 
FROM users u INNER JOIN works w ON w.user_id = u.id 
WHERE w.work_status = 1
GROUP BY u.name, u.id

如果公司中只有约翰一个人在工作,您的查询就是这个:

SELECT u.name, COUNT(*) as num 
FROM users u INNER JOIN works w ON w.user_id = u.id 
WHERE w.work_status = 1
GROUP BY u.name

注意:如果三个约翰是同一个人,则应删除最后两个,然后在works表上将user_id = 3user_id = 4更改为user_id = 1

这应该做的工作:

SELECT users.name,SUM(works.work_status) as num 
  FROM users,works 
  WHERE users.id=works.id 
  GROUP BY name

这是一个简单的JOIN查询:

  SELECT u.name, COUNT(*) num
    FROM users u
    JOIN works w
      ON w.user_id = u.id
     AND w.work_status = 1
GROUP BY u.name
SELECT 
  users.`name`,
  COUNT(*) num 
FROM
  users,
  works 
WHERE users.`id` = works.`user_id` 
  AND works.`work_status` = 1 
GROUP BY users.`name` ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM