2011-08-11 17 views
1

Q:次の参加方法を教えてください。

  • 私は次のクエリからのDataTableの結果持っている:私は別のDataTableを持って

SELECT UNIQUE a.crsnum_e , a.crsnum_e || '/ ' || a.crstteng crs_name, b.period , b.crscls , c.crsday , c.from_lect , c.to_lect , c.to_lect - c.from_lect + 1 Subtraction, c.lect_kind 

FROM rg1course a , rg3crsgrp b , ct1table c , ct1tablelect d 

WHERE a.crsnum = b.crsnum 
AND b.crsnum = c.crsnum 
AND b.crscls = c.crscls 
AND b.batch_no = c.batch_no 
AND c.serial_key = d.serial_key 

AND d.lect_code = .... 
AND b.batch_no = .... 
  • は:で構成されています(別のデータベーステーブルから来ます)。

batch_no p.k 
crsnum p.k 
lect_code p.k 
evaluation 

私は何を希望することにある:それは= nullであっても、私は結果にevaluation列を必要とする2つのDataTableを、参加

。私はいつもfirst datatableを取得する必要があることを意味しても、それは2番目のデータテーブルにインスタンスがありません。

INFORMIX JOIN. 

または

LINQ. 

pimaryキー(batch_no、crsnum、lect_codeを):でこれを行うにはどのように

。 Informixので

答えて

1

、外を指定するには、次の操作を実行する必要が参加:

FROM table1 t1, OUTER table2 t2 
WHERE t1.batch_no = t2.batch_no and ... 

結果のデータセットはTABLE1と任意のWHEREことを条件に一致する表2からレコード(とのNULLのすべてのレコードになります一致しない場合)。

あなたはLINQでこれを実行したい場合は、この記事では例との良好な説明があります。http://smehrozalam.wordpress.com/2009/06/10/c-left-outer-joins-with-linq/

+0

おかげで多くのことを.... –

+0

動作しますが、それは独特で、昔ながらの外部結合表記でInformixへ。ほとんどのDBMSは、同様に外部結合のための古い表記法を持っています。 SQL-92標準では、LEFT OUTER JOINを含む標準JOIN表記が定義されているため、FROM句でコンマで区切られた表名のリストとWHERE句の条件を結合する代わりに、すべての問合せでその表記を使用することをお薦めします。 'FROM rg1course a JOIN rg3crsgrp b ON a.crsnum = b.crsnum JOIN ct1table c ON b.crsnum = c.crsnumそしてb.crscls = c.crscls AND b.batch_no = c.batch_no JOIN ct1tablelect d ON c.serial_key = d.serial_key'となります。 –

関連する問題