我是 MySQL 的新手,我正在使用一个有四个主表的数据库系统,如下所述:
此查询主要使用的表在这里:
看起来很简单吧?
我的查询的目的是为显式用户获取所有 BusinessID,其中 OpportunityID 为 NULL,一旦它具有这些 BusinessID,我希望它在 Business 表中找到关联的 BusinessName,并将该 BusinessName 与就业机会中的 BusinessName(Business) 匹配桌子。
这是我执行该操作的查询。
SELECT EmploymentOpportunity.OpportunityID, Business, Description
FROM UserBusinessOpportunity, Business, EmploymentOpportunity
WHERE UserBusinessOpportunity.BusinessID =
(SELECT UserBusinessOpportunity.BusinessID
FROM UserBusinessOpportunity
WHERE UserBusinessOpportunity.UserID=1 AND
UserBusinessOpportunity.OpportunityID is NULL)
AND UserBusinessOpportunity.BusinessID = Business.BusinessID
AND Business.BusinessName = EmploymentOpportunity.Business;
子选择语句应该返回 BusinessID 的子集。我确信这是一个非常简单的查询,但它不断给我重复的结果,我知道为什么。结果集应该是 3,但它向我发送了 24 个,或者 8 个重复的这 3 个集。
谢谢,如果你能帮我解决这个问题。