3

ここに私の問題があります:私はさまざまな国際プロジェクトに関連付けられているユーザーのリストを持っています。私は米国のプロジェクト専用に作業しているユーザーを取得したいので、誰かがドイツのプロジェクトで働いていたとしましょう。彼をリストに。ユーザー、プロジェクト、会社の 3 つのテーブルが含まれます。

以下は、米国のプロジェクトで作業しているユーザーを取得する最初のクエリです。

SELECT DISTINCT users.forename, users.surname, users.email, users.company_id,  users.user_id
FROM projects, company, users
WHERE projects.project_type = 'US'
AND company.project_id = projects.project_id
AND users.company_id = company.company_id
ORDER BY surname, forename

他の国のプロジェクトも持っているユーザーを除外するにはどうすればよいですか?

4

7 に答える 7

2

NOT IN 句を使用して、他のプロジェクトで作業しているユーザーを除外できます。

where条件で行の下に追加

WHERE projects.user_id 
  NOT IN (select user_id from projects where projects.project_type != 'US')
于 2013-04-19T10:45:41.903 に答える
0

これを試してみてください。マイナスが必要だと思います:

SELECT 
    users.forename, users.surname, users.email, users.company_id,  users.user_id
FROM 
    users
where 
    user_id not in(SELECT DISTINCT user_id from users where company_id in
    (
        Select company_id from company where project_id = (
            Select project_id from projects where project_type != 'US'
        )
    ) 
于 2013-04-19T10:54:16.387 に答える