问:
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
我要做的是:
加入两个数据表,即使它是evaluation
,我也需要结果中的null
列。我的意思是我需要总是得到first datatable
,即使它在第二个数据表中没有任何实例。
如何做到这一点:
INFORMIX JOIN.
或
LINQ.
pimary键(batch_no,crsnum,lect_code)。
答案 0 :(得分:1)
在Informix中,要指定外部联接,您需要执行以下操作:
FROM table1 t1, OUTER table2 t2
WHERE t1.batch_no = t2.batch_no and ...
结果数据集将是table1中的所有记录以及table2中与WHERE条件匹配的任何记录(以及不匹配的NULL)。
如果您想在LINQ中执行此操作,本文对示例有一个很好的解释:http://smehrozalam.wordpress.com/2009/06/10/c-left-outer-joins-with-linq/