gpt4 book ai didi

MySQL - 如何指示用户是否申请工作?

转载 作者:行者123 更新时间:2023-11-29 06:12:22 25 4
gpt4 key购买 nike

我有一个如下图所示的数据库架构:

enter image description here

我想编写一个查询,选择所有 6 个表的数据以及一个指示特定用户是否申请职位的字段。

我已经尝试过:

SELECT j.id, j.expired_date, j.title, j.views, j.status
, j.unread, j.applicants, j.location, j.created_date
, j.contract_type, c.country
, group_concat(DISTINCT jp.page_name) AS fan_pages
, group_concat(DISTINCT jp.id_page) AS id_pages
, app.id AS applied
FROM jobs AS j
INNER JOIN country AS c ON c.id = j.country
LEFT JOIN job_pages AS jp ON jp.id_job = j.id
LEFT JOIN applications AS app ON app.id_job = j.id
LEFT JOIN resumes AS res ON res.id = app.id_resume
LEFT JOIN applicants AS alc ON alc.id = res.id_applicant
AND alc.id_user = 15
WHERE ( j.status = 0 )
AND ( j.expired_date = 0
OR j.expired_date > 1323228856 )
GROUP BY `j`.`id`
ORDER BY `j`.`id` desc
LIMIT 5 OFFSET 5

但它返回的结果表明任何用户都应用了作业。我怎样才能重写这个查询?

最佳答案

-- 编辑--

下面是一个基本的 ERD,用于说明如何更轻松地跟踪已申请职位的用户。我将用户和简历之间的关系设为 1:M,以防您想跟踪简历版本。如果不是的话,应该是1:1的关系。

因此,鉴于 ERD,您有一个用户通过简历申请工作。如果您想让简历成为可选,则可以从 M:M with Job 中删除简历表,并直接链接到用户。

只是一些想法...

enter image description here

-- 原文 --

只是一些建议。

在我看来,您可能需要重新访问架构设计。申请人表似乎应该是用户表和工作表之间的数据透视表。 users 和 jobs 表具有 M:M 关系,因为许多用户可以申请许多职位,并且许多职位可以由许多用户申请。当用户申请职位时,申请人表应充当事务表。

此外,resumes 表不应该直接链接到users 表吗?应用程序如何拥有简历?

用户拥有一份简历。

用户通过简历申请工作(申请人)。

关于MySQL - 如何指示用户是否申请工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8410177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com