3

他の結合を追加するには、クエリを変更する必要があります。ただし、新しい結合はおそらく左結合である必要があります。これについてどうすればよいかわかりません。私はInformixを使用しています:

     set    query   "SELECT DISTINCT x.xfertype,x.app_type,x.service_type,x.lang,x.area_type,x.area_value,x.module,x.field1,x.field2,x.disabled,a.frames,a.allocs,a.term_id,t.term,c.center_id,c.center_name,a.message_id,x.field3,x.apn_type,x.global, a.icm, s.group_name "
    append  query   " FROM test_xfertypes AS x, test_allocation AS a, test_terms AS t, test_callcenter AS c"
    append  query   " AND a.xfertype = x.xfertype "
    append  query   " AND a.term_id = t.term_id "
    append  query   " AND t.center_id = c.center_id ";

test_xfertypes AS x含むarea_value(int)

上記のテーブルを別の新しいテーブルと結合したままにしますtest_routing_groups AS s

私はそれが戻るように参加したいですs.group_name WHERE x.area_value IN (s.area_id); group_name が存在する場合は group_name を返し、それ以外の場合は null を返します。

4

1 に答える 1

3

これには、標準の結合構文を使用する必要があります。クエリは次のようになります。

SELECT DISTINCT x.xfertype, x.app_type, x.service_type, x.lang,x.area_type,
       x.area_value, x.module, x.field1, x.field2, x.disabled,
       a.frames, a.allocs, a.term_id,
       t.term,c.center_id, c.center_name,a.message_id, x.field3, x.apn_type,x.global,
       a.icm, s.group_name
FROM test_xfertypes x join
     test_allocation a
     on a.xfertype = x.xfertype join
     test_terms t
     on a.term_id = t.term_id join
     test_callcenter c
     on t.center_id = c.center_id

次を追加するだけで、別のテーブルに参加したままにすることができます。

left outer join test_routing_groups s
on x.area_value IN (s.area_id)

「in」句の代わりに「x.area_value = s.area_id」を使用することもできます。

于 2012-06-27T17:59:11.797 に答える