如何在此查询中嵌套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);
问题是,在数据库中,FromLoc
和ToLoc
作为另一个表(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 |
+-----------------------------------------+
我需要原始查询的结构保持不变,其中可能嵌入选择查询,但我不能得到任何正确的东西。我怎样才能做到这一点呢?
编辑:这里是使用的查询的原始演示,供任何需要尝试并弄清楚查询是做什么的人使用。
试一下
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);