SQL文のWHERE句

解決


sa  2008-04-01 02:11:38  No: 30334

ファイルA        ファイルB  
ID                ID
売上日             名前  
売値段    住所    
    電話番号      

上記のようなファイルがあります。

SQL文のWHERE句でファイルA.ID=ファイルB.IDとすると
グリッドにファイルBの名前が表示されるようにしているのですが、
この場合だと例えばファイルAのIDがブランクだった場合
グリッドにはファイルAのIDがブランクのレコードが表示されません。
ファイルAのIDがブランクでもグリッドに表示させたいのですが
そうするとファイルBの名前を表示することができません。

WHERE句で
(ファイルA.ID=ファイルB.ID)  OR  (ファイルA.ID=’’)と
してみましたがファイルA.IDがブランクの該当レコードは1つで
また、ファイルA.IDがブランクの場合は
名前のフィールドもブランクにしたいのですが
ファイルBの名前のフィールド(グリッド上)にいろんな名前が入って
表示されてしまいます。

SQL文でこれを回避することは難しいでしょうか?
何かよい方法があれば教えてください。
よろしくお願いいたします。


Ru  2008-04-01 03:14:51  No: 30335

え〜と,
ファイルAのデータは全て表示して,IDがあれば名前を表示するということですか?

SELECT
  A.ID, B.名前, A.売上日, A.売値段 住所, A.電話番号

FROM
  ファイルA A LEFT JOIN ファイルB B ON A.ID = B.ID


sa  2008-04-01 22:21:35  No: 30336

Ru様

教えて頂いたとおりしてみたのですが、
コンパイルは通ったのですが、
「キーワードLEFTは必要でない。有効なトークンは、FROM INTOです。」とエラーが出てしまいます。

何かおかしいのでしょうか??


Ru  2008-04-01 22:39:40  No: 30337

saさんが作ったSQL見てないのでなんともいえませんが,
上記サンプルSQLの例で言うと

A.電話番号  と  FROM  

の間にカンマ(,)が入力されてたりしませんか?


sa  2008-04-01 22:59:49  No: 30338

Ru様

ありがとうございます。。。出来ました!
FROMの前にカンマが入っていました・・・
本当にありがとうございました!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加