小编diz*_*zyf的帖子

使用OR优先处理多个列上的JOIN

我正在尝试跟踪博客网站上的评论来源,我的问题涉及使用OR语句在多列上优先加入JOIN .

评论表:

      Column        |          Type
--------------------+-------------------------
 id                 | integer
 text               | character varying(1024)
 session_source_id  | integer
 user_source_id     | integer
Run Code Online (Sandbox Code Playgroud)

如果我有这样的查询:

SELECT s.type, COUNT(c.id) FROM comments c
   LEFT JOIN sources s ON (c.session_source_id = s.id OR c.user_source_id = s.id) 
GROUP BY 1;
Run Code Online (Sandbox Code Playgroud)

在某些情况下我们知道用户来源但不知道会话源(这就是我使用的原因OR),但是如果我们还有user_source_id 并且这两个ID不同,我想优先考虑session_source_id .

(也有一些情况我们不知道任何一个来源,两个列都是null,因此LEFT JOIN)

该查询是否优先考虑session_source_id上​​的JOIN,因为它在加入OR语句中首先列出?Postgres如何处理JOIN语句中的OR条件?

sql postgresql join

9
推荐指数
1
解决办法
277
查看次数

如何更改 Airflow 网络服务器中的 dag_default_view?

Airflow v1.8 在 UI 中引入了一项更改,单击 DAG 会将您带到“树”视图,而不是之前默认的“图表”视图。根据文档,在配置中添加/更改此行应该会改变此行为,但我没有取得任何成功:

# Default DAG view.  Valid values are:
# tree, graph, duration, gantt, landing_times
dag_default_view = graph
Run Code Online (Sandbox Code Playgroud)

https://github.com/apache/incubator-airflow/blob/master/airflow/config_templates/default_airflow.cfg#L220-L222

我是否误读了说明?有谁能够成功改变这种默认行为吗?

python airflow

6
推荐指数
1
解决办法
5063
查看次数

重新读取/更新后无法识别Supervisord配置更改

使用超级用户在ubuntu机器上运行进程时遇到一些问题。

当我对配置文件进行更改时,我尝试了推荐的方法,reread然后update进行更改,然后重新启动该过程。但这没有任何作用。该过程将保持其预配置状态。只有当我运行时supervisorctl reload,更改才会真正生效

在流程组中,有几个理想情况下需要100%或接近100%的正常运行时间,因此supervisorctl reload每次我想更改某些内容时都无法运行。这是一个已知的错误?我在SO上遇到的大多数解决方案都建议将其reload作为最后的手段使用……这显然不是我的选择。

FWIW,reread并且update在类似的CentOS机器上运行良好。

ubuntu environment-variables supervisord ubuntu-16.04

2
推荐指数
1
解决办法
2111
查看次数