2012-02-18 1 views
0

idが1と2の2つのレコードを選択したいと思います。両方を基準カラムにハードコードするとSQLクエリで表示されます。しかし、条件を削除し、WHERE句を使用してSQLで同じデータを選択すると、1つのレコードしか表示されません。他のレコードはどうなりましたか?すべてのフィルターはオフです。msアクセス - 条件を削除してテーブルを照会するとデータが消えます

WORKS:

ID

Criteria: 1 or 2 

SQL:私はそれをこのようにコーディングする必要がある - しかし

select * from mytable where mytable.id=1 or mytable.id= 2 
//2 records appear. Success. 

doesntの仕事<。

ID

No Criteria: 

SQL:

select * from mytable where mytable.id=1 or mytable.id= 2 
//only record 1 appears. Failure. 

なぜ第二のレコードが表示されませんか?あなたは、このような、これがうまく働くような単純な条件を指摘すると、クエリビルダを使用してクエリを作成するとき

+2

私はあなたの質問の意味を理解することはできません... –

+0

彼らはまったく同じです。トップ1は2つの結果を生成しますが、ボトム1は1つの結果を生成します。私の質問はなぜですか?唯一の違いは、条件フィールドをテーブルから削除したことです。 – tdjfdjdj

+1

テーブルから実際に 'SELECT 'をしようとしていますか?あるいは、おそらく 'SELECT *'を意味しましたか? – Borealid

答えて

3

ここでの問題は次のとおりです。

1 or 2 

ですから、クエリビルダに上記入力した場合、あなたはこれを見ますそしてそれが仕事ん:あなたはSQLビューに反転する場合

enter image description here

しかし、あなたはアクセスが実際には、列名を含まなければならないことを書き出していることがわかります。

enter image description here

例:あなたはこの必要があります。ですから、列名を含める必要が

[id] = 1 or [id] = 2 

を。

このような状況では、手作業で記述するか、コードで列名を含める必要があります。あなたはまた、私はこれを書くことができたとします

[id] in (1,2) 
+0

助けてくれてありがとうが、テーブル名を追加するときにも同じ問題がある。実際には、sqlは毎回テーブルの最初のIDだけを見つけます。私はテーブルクエリとしてアクセスで保存された複数結合クエリからデータを引き出しています。それが問題だろうか? – tdjfdjdj

関連する問題