私は MySQL の初心者で、ここで説明する 4 つのメイン テーブルを持つデータベース システムを使用しています。
このクエリが主に使用するテーブルは次のとおりです。
かなり単純に見えますよね?
私のクエリの目的は、OpportunityID が NULL である明示的な User のすべての BusinessID を取得することです。これらの BusinessID を取得したら、関連する BusinessName を Business テーブルで検索し、その BusinessName を EmploymentOpportunity の 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;
sub-select ステートメントは、BusinessID のサブセットを返すことになっています。これは非常に単純なクエリであると確信していますが、結果が重複し続け、その理由は確かです。結果のセットは 3 のはずですが、24、つまり 3 つの繰り返しセットが 8 回送られてきます。
ありがとう、これを理解するのを手伝ってくれるなら。