Sql server 具有相同插件和相同数据类型的SQL Server表上的联接问题

Sql server 具有相同插件和相同数据类型的SQL Server表上的联接问题,sql-server,apache-drill,Sql Server,Apache Drill,我想使用相同的存储插件连接两个表。但其中一列显示空值。 我正在使用此查询:- select * from SqlServer.test_mopslive.reports as Reports join SqlServer.test_mopslive.reportsetting as ReportSetting on Reports.ID = ReportSetting.ID 这里,SqlServer是存储插件名,test\u mopslive是数据库名,reports,report

我想使用相同的存储插件连接两个表。但其中一列显示空值。 我正在使用此查询:-

select * from SqlServer.test_mopslive.reports as Reports join     
 SqlServer.test_mopslive.reportsetting as ReportSetting on Reports.ID = ReportSetting.ID
这里,
SqlServer
是存储插件名,
test\u mopslive
是数据库名,
reports
reportsetting
是表名

执行此查询时,T_ID显示为Null

但是,如果我使用两个不同的存储插件名称和相同的凭证,它会正常工作

表1:-

create table Reports (ID bigint, Name varchar(25)); 

insert into Reports values (29, 'SqlThree'); 
insert into Reports values (30, 'SqlTwo'); 
insert into Reports values (31, 'SqlThree'); 
表2:-

CREATE TABLE ReportSetting 
( 
P_id bigint not null auto_increment primary key, 
Name varchar(25), 
ID bigint, 
CONSTRAINT fk_ID FOREIGN KEY (ID) 
REFERENCES Reports(ID)); 

insert into ReportSetting values (1,'My_Sreekant1', 29); 
insert into ReportSetting values (2,'My_Sreekant2', 30); 
insert into ReportSetting values (3,'My_Sreekant3', 31);

是否可以使用相同的存储插件名称连接两个表?如果是,那么我在这个查询中做错了什么?

您不断更改问题和代码的文本-您以前使用的是正确的外部联接,现在使用的是与内部联接相同的普通联接

由于您使用的是内部联接,因此不会从任何一个表中获得任何不满足联接条件的行:

join SqlServer.test_mopslive.reportsetting ReportSetting
on Reports.ID = ReportSetting.ID
如果运行此查询(针对SQL Server-我不知道钻取是如何工作的),则Reports.ID或ReportSetting.ID不相等的行将不存在,也不会存在其中任何一个为null的行。也就是说,如果报表在ReportSetting表中没有任何条目,则该报表不会显示在结果集中,如果报表设置在Reports表中没有匹配项,则它不会显示在结果集中

如果您使用的是右外部联接,那么将获得联接目标表(ReportSetting)中的所有行,其中的数据来自联接源(Reports)(如果可用),或者在这些字段中为空

如果使用的是左外部联接,则将获得联接表(报表)中的所有行,其中包含来自联接目标(报表设置)的数据(如果可用),或者这些字段中的数据为空


如果使用的是完全外部联接,则将从两个表中获得所有行。在不匹配的字段中使用空值。

@dev:-是否可以使用相同的存储插件名称连接两个表?是的,这是可能的。我没有尝试使用SQL server。但总的来说,它应该work@dev:-请告诉我在这个查询中做错了什么….?如果它使用不同的存储插件名称,那么它也应该使用相同的名称。你可以在社区里询问。也许其他人也面临着这样的问题issue@dev:-我已经寄了。。。英国电信没有得到任何回复。。如果可能,请在您的系统中运行此查询。?:-我尝试了所有连接(左、右、全..等),但仍然面临相同的问题。您能显示实际的查询和结果吗?我没有看到任何名为t_ID的列。