2012-01-01 5 views
0

私は、一連のx個のクイズに関する情報を含むテーブルを持っています。 ID、名前、件名、レベルのフィールドがあります。SQLクエリでテーブルから各レコードの1つをフェッチする方法はありますか?

いくつかのクイズが同じ件名を持つため、すべての件名を一度フェッチすることができますので、重複は避けてください。

この結果をドロップダウンメニューに入力し、ユーザーが検索結果をフィルタリングするのを許可します。

私が悩んでいるのは、SQLクエリです。何か提案がありましたら、感謝します。ありがとうございます!

+0

データベーススキーマを正規化し、サブジェクト用に別のテーブルを用意する必要があります。質問表で個別の問合せを使用するのではなく – Bruce

+2

これを簡単にするには、別のテーブルの件名が必要です。記述するテーブルには、subject_idが外部キーとして含まれています。あなたのSQLクエリは 'select * from subjects'です – Ben

+0

DISTINCTメソッドがうまくいきました。あなたの主題について別のテーブルを使ってみましたが、私のプログラムの他の部分を少し混乱させました:p – Lissy

答えて

1

仮題は、Mathまたは英語のようなテキストフィールドです。あなた自身のテーブルへnormalize対象/レベルならば、その情報は、おそらく各クイズのために何度も繰り返されているので

select subject from quizzes group by subject 

明確な湖は、それはしかし、「適切」であることを

select distinct subject from quizzes 

またはDBさんのために。

1

distinctは、あなたが欲しいものです:あなたがしたい/必要がある場合

select distinct subject from thetable; 

order byを追加します。

1

あなたが重複する値なしの被験者を探しているなら

SELECT DISTINCT Subject FROM YourTable 
1
SELECT subject FROM tbl GROUP BY subject; 

この場合DISTINCTと同じように行います。

+0

ありがとう、これは働いた:) – Lissy

+0

結果を数える迅速な方法がある場合は知っていますか?ありがとう:) – Lissy

+0

@Lissy: '件名、件名(*)件名から件名を控除したもの、 ' –

1

これにより、subject列のすべてが戻されますが、重複はありません。

SELECT DISTINCT Subject FROM myTableName 

あなたが別のSubjectテーブルを持つ代わりに一つの大きなテーブル内のすべてのものを持ったほうが良い場合があります。

+0

大変ありがとうございます。 – Lissy

+0

大歓迎です! :) – keyboardP