与内连接和左连接重复

时间:2017-09-25 16:24:29

标签: sql sql-server left-join inner-join

我正在尝试获取列表的以下信息:

1)主键。

2)IsNullable

3)Is_Identity。

查询:

SELECT c.name 'Column Name',c.is_nullable,c.is_identity,ISNULL(i.is_primary_key, 0) 'Primary Key' FROM sys.columns c INNER JOIN sys.types t ON c.user_type_id = t.user_type_id LEFT OUTER JOIN sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id LEFT OUTER JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id WHERE c.object_id = OBJECT_ID('[HumanResources].[Employee]')

我正在使用Adventure Works数据库,但问题是我收到OrganizationNode列2次,我无法理解原因。

对于其他表我没有遇到此问题,但我只是在表[HumanResources].[Employee]中遇到此问题。

以下是下载数据库bak文件的链接:

https://www.dropbox.com/s/nutfat17b73boav/AdvantureWorksSeScript.bak?dl=0

enter image description here

我也尝试了distinct,但正因为如此,它在第二个输出中看到了它对列的排序进行了调整。 BirthDate is coming at the top instead of BusinessEntityID.

我不想使用distinct,因为我的下面的查询对所有其他表都运行良好但我不明白为什么它会在[HumanResources].[Employee]表的情况下给出重复的列,或者我可能有用少量表测试它,查询可能无法正常用于其他几个数据库。

我不确定我的查询是否正确,无法在所有场景中使用以获取我提到的3件事(pk,inullable etc.)。

1 个答案:

答案 0 :(得分:0)

试试这个

df.reset_index(inplace=True,drop=False)
country_names = df['Country'] #the Series I want to select
df.set_index('Country',drop=True,inplace=True)