加入查询组合两个表

时间:2015-03-05 00:24:24

标签: sql-server join

我需要显示表A中的3列和表B中的一列。我使用以下连接查询来组合它们但没有获得预期列中的值。    example1 - 这是有效的。(如果我在表A中显示一列,从表B中显示一列,则可以正常工作)

SELECT
      tableA.col1(fkid),
      tableB.col1
FROM tableA 
INNER JOIN tableB
ON tableA.fkid = tableB.pkid;

我需要显示表A中的3列和表B中的一列,以下查询无效。

SELECT
     tableA.col1,
     tableA.col2,
     tableA.col3,
     tableB.col1
FROM tableA 
FULL JOIN tableB
ON tableA.fkid = tableB.pkid;

  Original query:
select device.name,device.description,   device.fkphonetemplate,phonetemplate.name from device inner join phonetemplate   ON device.fkphonetemplate=phonetemplate.pkid;

结果:

description         fkphonetemplate                         name
Nikhil (nkalantr)   10ce46f6-615d-4605-9f42-454225df5647    ARRAY(0xc7153b0)

预期结果应为:

description         fkphonetemplate                         name
Nikhil (nkalantr)   10ce46f6-615d-4605-9f42-454225df5647    Standard 7960 SCCP

我没有从结果中的设备表中获取名称,而来自phonetemplate表的名称显示为Array0X ......但我需要获得像预期结果中所示的标准7960之类的phonetemplate名称。 您可以优化我的查询或建议第二个查询有什么问题吗?

1 个答案:

答案 0 :(得分:0)

您是否有任何理由使用完全加入而不是内连接? 如果不是,请尝试使用内连接。

SELECT
     a.col1,
     a.col2,
     a.col3,
     b.col1
FROM tableA a
INNER JOIN tableB b
ON a.fkid = b.pkid;

您能否提供数据库样本数据,以便我们清楚地了解您的需求。