0

皆さん、こんにちは。

エントリを持つテーブルが 1 つあります。これらのエントリには、フィールドの機密性(公開、機密) とフィールドの種類(プロジェクト、ポスター、出版物など) があります。だから私は何をしたいですか: 指定されたタイプと機密性のエントリではなく、すべてのエントリを SELECT 内でフィルタリングしたいです。

例えば:

type=project, confidentiality=public       | should be selected
type=project, confidentiality=confidential | should be not selected
type=poster, confidentiality=public        | should be selected
type=poster, confidentiality=confidential  | should be selected

これを行う良い方法はありますか?

SELECT ...
WHERE (type = 'project' AND confidentiality = 'public') OR type = 'publication' OR type
= 'poster' OR type = 'lecture' OR type = 'committee'
GROUP BY

前もって感謝します

4

3 に答える 3

1

あなたが提供した情報を考えると、あなたのクエリは問題ないように見えます。

この短いクエリは機能しますか?

SELECT ...
WHERE (type = 'project' AND confidentiality = 'public')
OR type <> 'project'

注:上記のクエリは次のように短縮できます。

SELECT ...
WHERE confidentiality = 'public'
OR type <> 'project'
于 2012-08-16T07:51:28.993 に答える
1

あなたの例から、機密confidentialityではないレコードを選択したいとします。右?これを試して、

SELECT ....
FROM ....
WHERE type <> 'project' AND confidentiality <> 'confidential'

ORはと同じです

SELECT ....
FROM ....
WHERE NOT (type = 'project' AND confidentiality = 'confidential')
于 2012-08-16T07:51:30.340 に答える
0

意図したロジックは次のようです。

SELECT ... WHERE type != 'project' OR confidentiality = 'public';
于 2012-08-16T07:51:45.810 に答える