如何在此查询中嵌套Select ?

本文关键字:嵌套 Select 查询 | 更新日期: 2023-09-27 18:13:29

我有这样的查询:

SELECT * FROM CableId WHERE
  (@CblType IS NULL OR CblType LIKE @CblType)
  AND (@CblStatus IS NULL OR CblStatus LIKE @CblStatus)
  AND (@FromLoc IS NULL OR FromLoc LIKE @FromLoc)
  AND (@ToLoc IS NULL OR ToLoc LIKE @ToLoc);

问题是,在数据库中,FromLocToLoc作为另一个表(majorequpment)的外键存储,并且输入是从一个下拉列表中选择的,从majorequpment填充。

+-----------------------------------------+    +--------------------+
| CableNumber | FromLoc (FK) | ToLoc (FK) |    | MEID (PK) | Equip# |
|-----------------------------------------|    |--------------------|
| 101         | 1            | 2          |    | 1         | CP1    |
+-----------------------------------------+    | 2         | CP2    |
                                               +--------------------+

我想展示的是:

+-----------------------------------------+
| CableNumber | FromLoc (FK) | ToLoc (FK) |
|-----------------------------------------|
| 101         | CP1          | CP2        |
+-----------------------------------------+

我需要原始查询的结构保持不变,其中可能嵌入选择查询,但我不能得到任何正确的东西。我怎样才能做到这一点呢?

编辑:这里是使用的查询的原始演示,供任何需要尝试并弄清楚查询是做什么的人使用。

如何在此查询中嵌套Select ?

试一下

area是第二个表名

SELECT CableNumber,a.Equip,a1.Equip FROM CableId c 
inner join area a on c.FromLoc=a.MEID
inner join area a1 on c.ToLoc=a1.MEID WHERE
(@CblType IS NULL OR CblType LIKE @CblType)
AND (@CblStatus IS NULL OR CblStatus LIKE @CblStatus)
AND (@FromLoc IS NULL OR a.Equip  LIKE @FromLoc)
AND (@ToLoc IS NULL OR a1.Equip LIKE @ToLoc);