错误:列引用“客户”不明确

时间:2019-09-13 13:22:58

标签: sql postgresql

目标

我正在像BRASILFOODS这样的每个客户端的主机名列上执行计数器,我想要做的一件事是与BRASILFOODS计数并排。

查询

SELECT COUNT(*) hostname, customer
FROM tb_get_gap
LEFT JOIN tb_get_customers
ON tb_get_gap.customer = tb_get_customers.cust_cmdb WHERE tb_get_customers.customer = 'BRASILFOODS' and tb_get_gap.exception = 'NO';

输出

>[Error] Script lines: 1-4 --------------------------
 ERROR: column reference "customer" is ambiguous
 Line: 1 

2 个答案:

答案 0 :(得分:3)

SELECT 
    tgg.customer,                     -- 1
    COUNT(*) 
FROM tb_get_gap tgg 
LEFT JOIN tb_get_customers tgc 
    ON tgg.customer = tgc.cust_cmdb 
WHERE tgc.customer = 'BRASILFOODS' 
    AND tgg.exception = 'NO' 
GROUP BY tgg.customer                 -- 2
  1. 模棱两可”表示存在一个可以从多个来源获得的标识符。在这种情况下,两个表都包含一个名称为customer的列。因此,您可以通过添加表标识符或别名来指定要显示的两者。
  2. 您正在使用聚合函数(COUNT(*))。看来您想通过customer来计数。因此,在这种情况下,您需要按此列分组。

答案 1 :(得分:1)

您要获取哪个客户专栏? tb_get_gap.customer还是tb_get_customers.customer

这就是为什么您得到模棱两可的参考错误的原因。您需要指出要从哪个表获取。