内部联接引用列无效

时间:2017-07-09 14:57:05

标签: postgresql

我正在尝试基于两列进行内部联接,并且在正确引用列时遇到问题。我使用了以下查询,据我所知,这是postgresql中最好的实践。我试图进行内部联接的两个表是mk_kw& adwords_final,要加入的两个列都命名为" Key"

这是查询

SELECT
 *
FROM
 adwords_final
INNER JOIN mk_kw ON "mk_kw.Key" = "adwords_final.Key";

结果如下

ERROR:  column "mk_kw.Key" does not exist
LINE 5: INNER JOIN mk_kw ON "mk_kw.Key" = "adwords_final.Key";
                        ^
ERROR: column "mk_kw.Key" does not exist
SQL state: 42703
Character: 51

这些列确实存在于此上下文中。有没有更好的方法来引用这些列?

非常感谢。

2 个答案:

答案 0 :(得分:0)

查询应该变为:

 SELECT
 *
FROM
adwords_final
INNER JOIN mk_kw ON mk_kw.Key = adwords_final.Key;

以下是如何编写内部联接的示例:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

OrdersCustomers是表名。 CustomerIDCustomerNameOrderID是列名。所有这些都是区分大小写的。

答案 1 :(得分:0)

Peter Haddad的解决方案仍然会给您一个错误,因为const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(<URL>) ​ const ids = await page.evaluate('product_ids'); ​ console.log('ids are:', ids); ​ await browser.close(); })(); 是保留字。您需要将查询的列名部分分别用双引号引起来,如下所示:

key

编辑:已更新以反映以下评论