やや大規模なデータベースで少数のレコードを選択し、それらに対していくつかのクエリを実行しようとしています。
私はプログラミングに非常に慣れていないので、かなり迷っています。
私がする必要があるのは、Registraton# 列が特定の数値に等しいすべてのレコードを選択し、それらの結果だけに対してクエリを実行することです。
データベースがどのように見えるか、必要に応じてより詳細な説明を掲載できますが、私が見逃しているのは単純なものかもしれません。
データベース内のレコードのフィルタリングは、WHERE 句を使用して行います。
たとえば、FirstName = 'David" の Persons テーブルからすべてのレコードを取得する場合
SELECT
FirstName,
LastName,
MiddleInitial,
BirthDate,
NumberOfChildren
FROM
Persons
WHERE
FirstName = 'David'
あなたの質問は、あなたがこれだけのことを理解していることを示していますが、次のピースが欠けているだけです。
2 人以上の子供を持つ人のみを含めるために、上記の結果セットの結果内でクエリを実行する必要がある場合は、AND キーワードを使用して WHERE 句に追加するだけです。
SELECT
FirstName,
LastName,
MiddleInitial,
BirthDate,
NumberOfChildren
FROM
Persons
WHERE
FirstName = 'David'
AND
NumberOfChildren > 3
さて、本当にサブクエリを使用する必要がある状況がいくつかあります。例えば:
各人が PersonId を持ち、各人が別の人の PersonId に対応する FatherId を持っていると仮定します...
PersonId FirstName LastName FatherId...
1 David Stratton 0
2 Matthew Stratton 1
Select FirstName,
LastName
FROM
Person
WHERE
FatherId IN (Select PersonId
From Person
WHERE FirstName = 'David')
Davidという名前の父を持つすべての子供を返します。(サンプル データを使用すると、Matthew が返されます。)
私は自分の解決策について確信が持てません。ビューを使用することをお勧めします。必要なレコードに基づいてビューを作成します。次に、必要なクエリを作成すると、ビューを削除できます。
ビューの説明: ビューには、実際のテーブルと同じように、行と列が含まれます。ビュー内のフィールドは、データベース内の 1 つ以上の実際のテーブルからのフィールドです。
例:
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
詳細については、http ://www.w3schools.com/sql/sql_view.asp を参照してください。
あなたが今まで何をしてきたかはわかりませんが、次のような SQL クエリをどこかに持っていると思います。
SELECT col1, col2, col3
FROM table
where句を追加する
SELECT col1, col2, col3
FROM table
WHERE "Registraton#" = number
SO question SQL standard to escape column names? を参照してください。.
これはあなたの役に立ちますか?
SELECT * from table_name WHERE Regestration# = number
これを試して:
SELECT *
FROM tableName
WHERE RegistrationNo = 'valueHere'