1

我正在尝试在 Drill 中运行一个需要不等式连接的查询(例如'on a.event_time >= b.event_time and a.event_time < b.next_event_time')。我收到了 Drill 不支持不等式连接的错误,这也是我在网上阅读的内容。

在不使用不等式连接的情况下,是否有任何变通方法可以在钻取中使用以获得相同的结果?我能想到的只是扩展我的一个表,以包含我尝试加入的字段的每次迭代的重复行,但我猜有一种更直接的方式,Drill 用户可以解决这个问题。

4

2 回答 2

1

我猜你正在尝试

 SELECT *
 FROM Table1
 JOIN Table2
   ON Table1.time > Table2.time

你能试一下吗 ?

 SELECT *
 FROM Table1, Table2
 WHERE Table1.time > Table2.time
于 2015-10-02T15:08:14.557 回答
0

这很老套,但我能够通过在“WHERE”子句中复制和捆绑连接的逻辑,然后在连接的反面添加一个 OR 来使其工作。

所以例如,如果你想做

SELECT * FROM
    ORDERS as Ord
LEFT JOIN Customers as Cus
    ON Cus.CustomerID = Ord.CustomerID
    AND Cus.CustomerType <> 'Employee'

你可以这样做:

SELECT * FROM
    ORDERS as Ord
LEFT JOIN Customers as Cus
    ON Cus.CustomerID = Ord.CustomerID
WHERE ((Cus.CustomerID = Ord.CustomerID
    AND Cus.CustomerType <> 'Employee') OR (Cus.CustomerID <> Ord.CustomerID))
于 2017-02-06T22:56:49.687 回答