従業員の名前と年を格納するテーブルがあります。列は次のとおりです。SQL照会select * <this>の場合は<condition>
employeeID int NOT NULL,
year int NOT NULL
プライマリキーは、employeeIDとyearのコンポジットです。私はその年の2012年が存在するテーブルのすべてのレコードを選択する必要がありますが、2011年ではありません。つまり、2011年ではなく2012年に働いた従業員のリストが必要です。これを行うことはできません!この質問を理解している場合は、下記のJavaコードをスキップしてください。
私はJavaでの従業員の表を解析した場合、それは次のようになります。
// This is what is returned at the end
List theQueryResults = new List();
// This would be all employees and the years they worked, assume it's filled.
Table employees = new Table (int employeeID, int year);
for (int i = 0; i < employees.count(); i++) {
boolean addToQuery = false;
for (int j = 0; j < employees[0].length; j++) {
if (theArray[i][j] == 2011) {
addToQuery = false;
break;
}
if (theArray[i][j] == 2012) { addToQuery = true; }
}
if (addToQuery == true) { theQueryResults.add(employees[i].id); }
}
私は応答をいただければと思います。私は脳を持っています。オラクルで
この作品は、2つの結果セットの間で異なるため、この作品は勝てません。 '*'ではなく明示的な列(例えば 'employeeID'のみ)を指定してください(他の列でもマイナス演算子を動かすことができます) –
@Damien_The_Unbelieverありがとう!標準のSQLで私の答え –
'minus' ==' EXCEPT'を更新しました。 – onedaywhen