如何在Apache Drill中进行不等式连接?

时间:2015-10-02 14:31:53

标签: sql apache-drill

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

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

2 个答案:

答案 0 :(得分:1)

我猜你正在尝试

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

你能试试吗?

 SELECT *
 FROM Table1, Table2
 WHERE Table1.time > Table2.time

答案 1 :(得分:0)

这很hacky但是我能够通过在" 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))