关于SQL查询,我是一个新手,但我希望有人可以帮助我吗?
我有两个表:
表一具有以下列: 客户名称 ScheduleName
表2包含列: 虚拟机名称 BackupStatus
到目前为止,这是我的两个选择语句:
select *
from [dbo].[CommCellBkSchedule]
where ClientName LIKE 'KI%'
order by ClientName
和
select *
from VMProtectionCoverage (32, '')
where VMName LIKE 'KI%' AND BACKUpSTatus LIKE 'Currently protected'
order by VMName
这些表没有任何相同的列,但是VMName和ClientName具有相同的详细信息,即两个服务器名称。
如何组合表以在一条select语句中获取所有数据?
即我想要服务器名称,backupstatus和日程表名称吗? 任何帮助都会很棒。
答案 0 :(得分:1)
基本上,您将两个表与公共列(在本例中为客户端名称和VMName)连接在一起。如果希望保留这些表之一而不在联接后丢失数据,则可以使用标记中提到的LEFT JOIN。否则,可以使用INNER JOIN。
SELECT b.VMName,b.BackupStatus,a.ScheduleName
FROM [dbo].[CommCellBkSchedule] a
INNER JOIN [dbo].[VMProtectionCoverage] b
on a.ClientName=b.VMName
where ClientName LIKE 'KI%' AND BACKUpSTatus LIKE 'Currently protected'
order by ClientName
答案 1 :(得分:0)
您可以使用INNER JOIN
使用以下解决方案:
SELECT CS.ClientName, CS.ScheduleName, VC.BackupStatus
FROM CommCellBkSchedule CS INNER JOIN VMProtectionCoverage(32, '') VC ON CS.ClientName = VC.VMName
WHERE CS.ClientName LIKE 'KI%' AND VC.BackupStatus LIKE 'Currently protected'
ORDER BY CS.ClientName
答案 2 :(得分:0)
SELECT CBS.ClientName, CBS.ScheduleName, VPC.BackupStatus
FROM CommCellBkSchedule CBS FULL OUTER JOIN VMProtectionCoverage VPC ON CBS.ClientName = VPC.VMName
WHERE CBS.ClientName LIKE 'KI%' AND VPC.BackupStatus LIKE 'Currently protected'
ORDER BY CBS.ClientName
答案 3 :(得分:0)
您可以尝试以下操作:
select *
from [dbo].[CommCellBkSchedule] , VMProtectionCoverage (32, '')
where ClientName LIKE 'KI%' MName LIKE 'KI%' AND BACKUpSTatus LIKE 'Currently protected'
order by ClientName,VMName