Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
端口的SQL检查可用_Sql - Fatal编程技术网

端口的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)
                )
    )

如果检查后向,则将前接口更换为后接口。

您所说的“工作不正常”是什么意思?到底是什么问题?