如何进行以下加入?

时间:2011-08-11 11:49:11

标签: c# asp.net sql linq informix

问:

  • 我有以下查询的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 = ....
  • 我有另一个DataTable:包括:(来自另一个数据库表)。

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)。

1 个答案:

答案 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/