Sql 在两个表中查找不同的值无效

Sql 在两个表中查找不同的值无效,sql,sql-server,join,distinct,dbeaver,Sql,Sql Server,Join,Distinct,Dbeaver,我有两个表(我只显示了选择字段): 表A: <LOCATION CODE> ACT NSWNS OSUSA Parra Parra Parra ACT ACT <CODE> <DESCRIPTION> ACT Australian Capital Territory NSWNS New South Whales - North South OS

我有两个表(我只显示了选择字段):

表A:

    <LOCATION CODE>
    ACT   
    NSWNS    
    OSUSA
    Parra
    Parra
    Parra
    ACT
    ACT
<CODE>    <DESCRIPTION>
ACT        Australian Capital Territory
NSWNS      New South Whales - North South
OSUSA      Overseas - USA
Parra      Parramatta
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'full'.
  Incorrect syntax near the keyword 'full'.
  Incorrect syntax near the keyword 'full'.
我收到的错误是:

    <LOCATION CODE>
    ACT   
    NSWNS    
    OSUSA
    Parra
    Parra
    Parra
    ACT
    ACT
<CODE>    <DESCRIPTION>
ACT        Australian Capital Territory
NSWNS      New South Whales - North South
OSUSA      Overseas - USA
Parra      Parramatta
SQL Error [156] [S0001]: Incorrect syntax near the keyword 'full'.
  Incorrect syntax near the keyword 'full'.
  Incorrect syntax near the keyword 'full'.
非常感谢您的帮助谢谢!!:)

请尝试以下操作:

WITH r1 (loc) AS
    (SELECT DISTINCT LOCATION FROM [mailout_profile])
SELECT Code, Description FROM r1
FULL OUTER JOIN [code_table] ct ON r1.loc =  ct.Code
请尝试以下方法:

WITH r1 (loc) AS
    (SELECT DISTINCT LOCATION FROM [mailout_profile])
SELECT Code, Description FROM r1
FULL OUTER JOIN [code_table] ct ON r1.loc =  ct.Code

您可以使用下面的查询来获得所需的结果-

样本数据

Declare @TableA table
(LocationCode varchar(20))

Insert into @TableA
values

    ('ACT'   ),
    ('NSWNS' ),   
    ('OSUSA'    ),
    ('Parra'    ),
    ('Parra'    ),
    ('Parra'    ),
    ('ACT'  ),
    ('ACT'  )


Declare @TableB table
(Code varchar(20), Description varchar(100))

Insert into @TableB
values
('ACT'    ,  'Australian Capital Territory'   ),
('NSWNS'  ,  'New South Whales - North South' ),
('OSUSA'  ,  'Overseas - USA'                 ),
('Parra'  ,  'Parramatta'                     )
查询

select DISTINCT LocationCode, [Description] 
From @TableA a inner join @TableB b on a.LocationCode = b.Code

您可以使用下面的查询来获得所需的结果-

样本数据

Declare @TableA table
(LocationCode varchar(20))

Insert into @TableA
values

    ('ACT'   ),
    ('NSWNS' ),   
    ('OSUSA'    ),
    ('Parra'    ),
    ('Parra'    ),
    ('Parra'    ),
    ('ACT'  ),
    ('ACT'  )


Declare @TableB table
(Code varchar(20), Description varchar(100))

Insert into @TableB
values
('ACT'    ,  'Australian Capital Territory'   ),
('NSWNS'  ,  'New South Whales - North South' ),
('OSUSA'  ,  'Overseas - USA'                 ),
('Parra'  ,  'Parramatta'                     )
查询

select DISTINCT LocationCode, [Description] 
From @TableA a inner join @TableB b on a.LocationCode = b.Code

完全外部联接的语法必须如下所示:从表1上的表1完全外部联接表2中选择列\名称。列\名称=表2。列\名称WHERE条件;完全外部联接的语法必须如下所示:从表1上的表1完全外部联接表2中选择列\名称。列\名称=表2。列\名称WHERE条件;谢谢,你刚刚创建了两个临时表吗?This=>Declare@tableatableyes,这是临时表变量,只是为了演示一下,您可以用实际的表名替换表变量名。谢谢Mukesh。实际的表实际上每个都有一百万条记录,因此我自己无法手动将记录插入临时表,但我在这里学到了一些东西。:)我对你的答案投了赞成票。没有必要使用临时表变量,这只是一个例子-像这样直接使用你的表-从a.LocationCode=b上的ActualTableName1 a内部联接ActualTableName2 b中选择不同的LocationCode,[说明]谢谢,你刚刚创建了2个临时表吗?This=>Declare@tableatableyes,这是临时表变量,只是为了演示一下,您可以用实际的表名替换表变量名。谢谢Mukesh。实际的表实际上每个都有一百万条记录,因此我自己无法手动将记录插入临时表,但我在这里学到了一些东西。:)我对你的答案投了赞成票。没有必要使用临时表变量,这只是一个例子-像这样直接使用你的表-从a.LocationCode=b上的ActualTableName1 a内部联接ActualTableName2 b中选择不同的LocationCode,[说明]a.LocationCode感谢这一点,但是我收到了大量重复记录。我通过添加一个WHERE子句和几个其他条件修复了这个问题。干杯谢谢你,我成功了,但是我收到了很多重复的记录。我通过添加一个WHERE子句和几个其他条件修复了这个问题。干杯