Sql 如何编写连接条件(使用USING子句)

Sql 如何编写连接条件(使用USING子句),sql,postgresql,Sql,Postgresql,我想比较两个不同表中具有相同名称的两列,但我不断收到错误 有没有一种方法可以在不使用“public”和双引号的情况下使用这些表达式 您的连接语法错误。由于两个表中都有列“OrderNr”,因此您还需要在选择列表中限定要从中获取该列的表。使用表别名可以简化此操作 SELECT e."OrderNr" FROM public."Export" e LEFT JOIN public."Temp" t ON e."OrderNr" = t."OrderNr"; 如果要使用USING子句(我不建议这

我想比较两个不同表中具有相同名称的两列,但我不断收到错误

有没有一种方法可以在不使用“public”和双引号的情况下使用这些表达式


您的连接语法错误。由于两个表中都有列
“OrderNr”
,因此您还需要在选择列表中限定要从中获取该列的表。使用表别名可以简化此操作

SELECT e."OrderNr"
FROM public."Export" e
  LEFT JOIN public."Temp" t ON e."OrderNr" = t."OrderNr";
如果要使用
USING
子句(我不建议这样做),则不指定条件,只指定列名:

SELECT "OrderNr"
FROM public."Export" e
  LEFT JOIN public."Temp" t USING ("OrderNr");
通常,
public
模式位于中,因此您可以将其排除在外:

SELECT e."OrderNr"
FROM "Export" e
  LEFT JOIN "Temp" t ON e."OrderNr" = t."OrderNr";

您的连接语法错误。由于两个表中都有列
“OrderNr”
,因此您还需要在选择列表中限定要从中获取该列的表。使用表别名可以简化此操作

SELECT e."OrderNr"
FROM public."Export" e
  LEFT JOIN public."Temp" t ON e."OrderNr" = t."OrderNr";
如果要使用
USING
子句(我不建议这样做),则不指定条件,只指定列名:

SELECT "OrderNr"
FROM public."Export" e
  LEFT JOIN public."Temp" t USING ("OrderNr");
通常,
public
模式位于中,因此您可以将其排除在外:

SELECT e."OrderNr"
FROM "Export" e
  LEFT JOIN "Temp" t ON e."OrderNr" = t."OrderNr";

只有在不使用双引号的情况下重新创建表,才能去掉双引号。那么,您所得到的错误究竟是什么?它是否与双引号的存在有关?只有在不使用双引号的情况下重新创建表,才能消除双引号。好吧,你所得到的错误到底是什么?它与双引号的存在有关吗?我支持
使用
应该避免的意见。它节省了一些按键,但功能有限,并且在连接多个表时可能会引入意外行为。我支持以下评论,即应避免使用
。它可以节省一些按键,但功能有限,并且在连接多个表时可能会引入意外行为。