gpt4 book ai didi

mysql - SQL:两个多对多连接,每个连接有一个匹配

转载 作者:行者123 更新时间:2023-11-30 00:45:39 26 4
gpt4 key购买 nike

我的数据模型:

  • 个人资料有多个项目 (Project.ProfileID)
  • 项目多对多专业(Projects_Specialities 表 [ProjectID/SpecialityID])
  • 项目多对多行业(Projects_Industries 表 [ProjectID/IndustryID])

当给定 IndustryID 和 SpecialityID 时,我需要获取至少有一个具有该 IndustryID 的项目以及至少一个具有该 SpecialityID 的项目的所有配置文件。

我已经尝试过一百万种不同的东西,我可以在这里发布,但我想我会先看看是否有人有明显的答案。

最佳答案

您可以按配置文件对连接的表进行分组,并筛选感兴趣的组:

SELECT   Project.ProfileID
FROM Project
JOIN Projects_Specialities USING (ProjectID)
JOIN Projects_Industries USING (ProjectID)
WHERE Projects_Specialities.SpecialityID = ?
AND Projects_Industries.IndustryID = ?
GROUP BY Project.ProfileID
HAVING SUM(Projects_Specialities.SpecialityID = ?)
AND SUM(Projects_Industries.IndustryID = ?)

WHERE 子句对于正确性来说不是必需的,但会增加性能优势(特别是如果索引可用于查找)。

关于mysql - SQL:两个多对多连接,每个连接有一个匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377821/

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