gpt4 book ai didi

Mysql - 通过与他相关的项目选择用户

转载 作者:行者123 更新时间:2023-11-29 13:40:37 25 4
gpt4 key购买 nike

我有两个表:tbl_users 和 tbl_users_jobs。

tbl_users作为使用信息tbl_users_jobs 作为与该用户相关的作业。

假设我有 3 个用户:id 1、2 和 3。

用户 1 有 2 个职位,用户 3 有 3 个职位,用户 2 仅有 1 个职位。我想向职位较少的用户插入一个新职位(这样我就可以将职位分配给所有用户)。

我该怎么做?还需要考虑一件事:例如,用户可能今天开始工作,但没有工作...

表结构如下:

tbl_user
-------
Id
name

-

tbl_users_jobs
-------
Id
user_id
description

谢谢。

最佳答案

您可以使用 LEFT JOIN 计算每个用户的作业(包括没有作业的新用户)。

诀窍是对 tbl_users_jobs 中的列进行计数,因为对于新用户,该列的值将为空,并且将返回零计数。只要确保计算出不能为空的列即可;在本例中,我选择了 tbl_users_jobs.Id 并假设它是 PK:

SELECT
tbl_user.Id,
tbl_user.Name,
COUNT(tbl_users_jobs.Id) AS JobCount
FROM tbl_user
LEFT JOIN tbl_users_jobs ON tbl_user.Id = tbl_users_jobs.user_id
GROUP BY
tbl_user.Id,
tbl_user.Name
ORDER BY JobCount DESC

结果按照职位数最少的顺序返回。您可以将第一行作为您的用户来获取新作业,但请记住,可能有其他用户拥有相同数量的作业 - 换句话说,可能有 2 或 3 或更多用户拥有零个作业。您必须决定如何在它们之间进行选择。

关于Mysql - 通过与他相关的项目选择用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135065/

25 4 0
文章推荐: php - 如何在 PHP 中将 CSV 字符串转换为关联数组
文章推荐: php - 尝试在