[英]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 = 3
和user_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.