我正在尝试在 Drill 中运行一个需要不等式连接的查询(例如'on a.event_time >= b.event_time and a.event_time < b.next_event_time')。我收到了 Drill 不支持不等式连接的错误,这也是我在网上阅读的内容。
在不使用不等式连接的情况下,是否有任何变通方法可以在钻取中使用以获得相同的结果?我能想到的只是扩展我的一个表,以包含我尝试加入的字段的每次迭代的重复行,但我猜有一种更直接的方式,Drill 用户可以解决这个问题。
我正在尝试在 Drill 中运行一个需要不等式连接的查询(例如'on a.event_time >= b.event_time and a.event_time < b.next_event_time')。我收到了 Drill 不支持不等式连接的错误,这也是我在网上阅读的内容。
在不使用不等式连接的情况下,是否有任何变通方法可以在钻取中使用以获得相同的结果?我能想到的只是扩展我的一个表,以包含我尝试加入的字段的每次迭代的重复行,但我猜有一种更直接的方式,Drill 用户可以解决这个问题。
我猜你正在尝试
SELECT *
FROM Table1
JOIN Table2
ON Table1.time > Table2.time
你能试一下吗 ?
SELECT *
FROM Table1, Table2
WHERE Table1.time > Table2.time
这很老套,但我能够通过在“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))