gpt4 book ai didi

mysql - 获取两个连接表之间的匹配结果

转载 作者:行者123 更新时间:2023-11-29 21:45:33 25 4
gpt4 key购买 nike

我有一个企业模型:

name - VARCHAR 255

候选人模型:

first_name - VARCHAR 255
last_name - VARCHAR 255

还有一个Type模型:

name - VARCHAR 255

每个企业可以选择自己感兴趣的一种或多种类型,每个候选人也可以选择。

我正在尝试显示与当前登录的企业共享某些类型的所有候选人的列表。 它们不需要具有完全相同的类型,只需共享其中一些

我使用两个连接表来保持候选人与类型、企业与类型之间的链接。

id - INT
candidat_id - INT
type_id - INT

id - INT
enterprise_id INT
type_id INT

这是我目前使用的 SQL 查询:

SELECT candidats.* FROM candidats
INNER JOIN candidats_types ON candidats_types.candidat_id = candidats.id
RIGHT JOIN entreprises_types ON entreprises_types.type_id = candidats.type_id
WHERE entreprises_types.entreprise_id = 1

查询末尾的1是当前登录企业的ID,硬编码用于测试目的。

但是,这不起作用,它返回一个空数组,即使有一些候选者与该企业共享相同的类型。

我这个查询做错了什么?

最佳答案

根据表的描述,您的查询应该会生成错误,因为 candidate.type_id 不存在。我建议:

SELECT c.*
FROM candidats c INNER JOIN
candidats_types ct
ON ct.candidat_id = c.id INNER JOIN
entreprises_types et
ON et.type_id = ct.type_id
WHERE et.entreprise_id = 1;

从您的问题描述来看,RIGHT JOIN 是不必要的。

关于mysql - 获取两个连接表之间的匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141029/

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