Zend framework2 Zend\Db 2.8.2(DB2)中的异常连接

Zend framework2 Zend\Db 2.8.2(DB2)中的异常连接,zend-framework2,db2,zend-db,db2-400,Zend Framework2,Db2,Zend Db,Db2 400,我似乎不知道如何使用Zend\Db创建异常联接 我看到显式的内部,外部,左,右,右外部和左外部。但我们希望仍然有一种方法可以保留抽象性 是使用以下各项的唯一方法: $db->query('Select * from...exception join....') 可以使用外部联接模拟异常联接,其中联接右侧的行缺失。例如: select a.id, a.description, b.name from table1 a left exception join table2 b

我似乎不知道如何使用Zend\Db创建异常联接

我看到显式的内部,外部,左,右,右外部和左外部。但我们希望仍然有一种方法可以保留抽象性

是使用以下各项的唯一方法:

$db->query('Select * from...exception join....')

可以使用外部联接模拟异常联接,其中联接右侧的行缺失。例如:

select a.id, a.description, b.name
  from table1 a
    left exception join table2 b 
      on a.id = b.id
相当于:

select a.id, a.description, b.name
  from table1 a
    left outer join table2 b 
      on a.id = b.id
  where b.id is null
我现在无法测试这一点,但基于,您应该能够执行以下操作:

$select = new Select();
$select->columns(array('id', 'description'));
$select->from(array('a' => 'table1'));
$select->join(
    array('b' => 'table2'),
    'b.id = a.id',
    array('name'),
    $select::OUTER
);
$select->where(array('b.id' => null));

请确认运行Db2服务器的确切Db2版本和操作系统。“DB2fori”支持异常连接语法,但LUW或Z/OS上的Db2在当前版本中不支持异常连接语法,因此对于这些环境,not EXISTS子查询可能会有所帮助。它是DB2fori,但我已经知道如何在DB2fori中创建异常连接。我更感兴趣的是如何在利用Zend/Db提供的抽象层的同时,使用Zend/Db创建异常连接(或等效连接)。我只是想避免对SQL语句进行硬编码。谢谢,我真不敢相信我没有想到这一点。在异常连接上进行隧道透视,而不是考虑逻辑等价物。。。