gpt4 book ai didi

c# - 如何使用具有未知数量值的 IN 条件进行选择查询

转载 作者:太空狗 更新时间:2023-10-30 00:42:38 25 4
gpt4 key购买 nike

我有两个下拉列表,一个用于项目,第二个用于类别。
我有一个选择 ddproject 的地方我得到 id,基于这个 id 我必须填充 ddcategory。
表结构SQL FIDDLE

如果我从我的下拉列表中选择 ProjectOne,这里是简单的查询

select  id,name from tbcategory where id in(1,2)  

但我的问题是我不知道在 in 条件下会有多少值(value)。

C#:1st 我拆分列名称 categoryid 并稍后获取值,我很困惑该怎么做。
也让我知道我是否以正确的方式或任何其他替代方式来实现这一目标

已编辑:或者我应该更改我的表结构,如果是,那么应该是什么模式?

最佳答案

根据您的数据,Category 和 Project 之间存在多对多关系。因此,您需要建模另一个 Many:Many 表来保存对这种关系建模的数据。

SQL Fiddle Here

首先,创建一个新表来保存类别和项目之间的多对多关系:

create table tbProjectCategory
(
tbProjectId INT,
tbCategoryId INT
);

然后,删除 tbProject 中的字符串逗号分隔关系 - 这没有用。相反,将链接插入 Many Many 表中。例如:

insert into tbProjectCategory(tbProjectId, tbCategoryId) values (1, 1), (1, 2);

将项目 1 链接到类别 1 和 2。

然后,要找到项目 1 的所有类别,您需要通过 Many:Many 链接表加入,按项目 ID 过滤:

select  cat.id, cat.name 
from tbcategory cat
inner join tbProjectCategory prjcat
on prjcat.tbCategoryId = cat.id
where prjCat.tbProjectId = 1;

为了简洁起见,我还删除了您的标识列 - 这样可以更轻松地了解链接了哪些数据记录。

关于c# - 如何使用具有未知数量值的 IN 条件进行选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com