端口的SQL检查可用
我有两张桌子 第一个表:端口端口的SQL检查可用,sql,Sql,我有两张桌子 第一个表:端口 Column: PORTID - integer Column: FRONTINTERFACE - varchar (eg, "RJ45", "BNC", "SC", "FC", "-") Column: REARINTERFACE - varchar (eg, "RJ45", "BNC", "SC", "FC", "-") 第二张表:PortUsed Column: PORTID - integer Column: Facing - varchar(1)
Column: PORTID - integer
Column: FRONTINTERFACE - varchar (eg, "RJ45", "BNC", "SC", "FC", "-")
Column: REARINTERFACE - varchar (eg, "RJ45", "BNC", "SC", "FC", "-")
第二张表:PortUsed
Column: PORTID - integer
Column: Facing - varchar(1) (eg, "F" or "R")
端口表包含所有端口信息,包括前后接口类型。如果不可用,则相应的接口设置为-
如果使用端口,则PortUsed表将存储PortID和Facing
任何人都可以使用sql查询来检查端口是否可用
要求1:检查PortID和Facing是否不在PortUsed表中,以确定端口是否未被使用
要求2:检查各前或后接口是否未连接-
我可以在两个单独的sql查询中得到结果,但速度太慢了。因此,我们正在寻找一个sql查询来将两者结合起来。我也不想使用存储过程
select *
from Ports a left join PortUsed b on a.portid = b.portid
where b.portid is null
and a.FRONTINTERFACE <> '-'
and a.REARINTERFACE <> '-'
我建议将frontinterface和rearinterface中的“-”改为空值我花了好几天的时间才弄清楚如何得到正确的结果
SELECT PortID FROM Ports
WHERE (PortID = @PortID)
AND (FrontInterface <> '-')
AND (NOT EXISTS(SELECT PortID, Facing
FROM PortUsed
WHERE (PortID = @PortID) AND (Facing = @Facing)
)
)
如果检查后向,则将前接口更换为后接口。您所说的“工作不正常”是什么意思?到底是什么问题?