2013-12-17 46 views
1

我有一个MSSQL数据库名称组织加入了多个表

我有3个表:

Table 1 named Organization 
Table 2 named Product 
Table 3 named IPAddress 

表1收益约1000个结果这是罚款。

SELECT distinct OrganizationName, AssetNumber 
FROM OrganizationList 
Where OrganizationName = 'orgname' 

我希望看到的是每个组织的资产编号。我不知道如何做到这一点。我知道需要一个连接,并尝试了一堆来自网络的例子,但我无法使其工作。

此外,我想能够得到的名称IP地址对每个资产

的问题我一个运行到是我需要从组织OrganizationID山坳从产品的OrganizationID山坳比赛,我需要匹配ProductId从产品和ProductIdIPAddress

任何帮助将不胜感激。请让我知道你是否需要更多的信息。

谢谢

+0

您应该发布所有表结构 - 每个表具有的列。 – gotqn

回答

0

还应该列出你的IP地址。

SELECT distinct c1.OrganizationName, c2.AssetNumber, c3.IPAddress 
FROM Organization c1 

INNER JOIN Product c2 
    ON c1.OrganizationID = c2.OrganizationID 
INNER JOIN IPAddress c3 
    ON c2.ProductId = c3.ProductId 

Where c1.OrganizationName = 'orgname' 
+0

此查询实际上适用于我想要的大部分内容。你能告诉我如何在IPAddress字段上选择不同的字段吗?但是应该在8上显示16个重复。 –

+0

你是什么意思在IPAddress字段选择不同。该查询已经为每个组织和资产编号选择了不同的IP地址。此外,这与我19分钟前提交的答案有何不同? – Linger

+0

@林格林不知道我厌倦了让你的工作,我一直得到一个无法绑定在他的AssetNumber和IPAddress feilds –

0

我在这里做一些猜测,因为你没有给我们所有的信息来充分帮助你。以下查询如何:

SELECT DISTINCT o.OrganizationName, p.AssetNumber, ip.IPaddress 
FROM Organization AS o 
    INNER JOIN Product AS p 
    ON o.OrganizationID = p.OrganizationID 
    INNER JOIN IPAddress AS ip 
    ON p.ProductId = ip.ProductId 
Where o.OrganizationName = 'orgname' 

我没有看到任何需要加入OrganizationList表。如果您确实需要它然后添加以下连接:

INNER JOIN OrganizationList AS ol 
ON o.OrganizationID = ol.OrganizationID 
-2

试试这个:

select o.OrgName, o.AssetNo 
from OrgList o 
join Prdct p 
on o.orgid = p.orgid 
Union All 
select p.productid/name, i.ipadress 
from product p 
join ipadres i 
on p.prdid=i.prdid 

PLZ检查&让我知道,如果作品或没有。

+1

仅当两个表具有完全相同的列结构时,联盟才有效 –

0

此查询的临时表的user3022598 采取结果:

SELECT DISTINCT o.OrganizationName,p.AssetNumber,i.IPAddress FROM组织为O

INNER JOIN产品p ON o.OrganizationID = p.OrganizationID INNER JOIN IPAddress i ON p.ProductId = i.ProductId

W这里o.OrganizationName ='orgname'

然后你可以在ipaddress字段上应用disctint。