Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
Asp.net 选择多个复选框列表的sql查询_Asp.net_Sql_Sql Server - Fatal编程技术网

Asp.net 选择多个复选框列表的sql查询

Asp.net 选择多个复选框列表的sql查询,asp.net,sql,sql-server,Asp.net,Sql,Sql Server,我有一个复杂的查询,其中包含一些部分依赖于复选框列表的动态sql。这是让我现在感到困惑的部分(大脑放屁?) 简单的例子: 表A(id、名称) 表B(id、Aid、Cid) 表C(id、颜色) 假设表A有: 1、鲍勃 2、蒂姆 3,皮特 表C有: 1、红色 2、蓝色 3、绿色 现在,表B已经完成 1,1,1 2, 1, 2 3,3,2 所以鲍勃最喜欢的颜色是红色和蓝色,而皮特最喜欢的颜色只有蓝色 如何进行查询,以便仅从表A中检索具有最喜欢的红色和蓝色的行。我不想在我的结果集中看到Pete。您想使用

我有一个复杂的查询,其中包含一些部分依赖于复选框列表的动态sql。这是让我现在感到困惑的部分(大脑放屁?)

简单的例子:

表A(id、名称)

表B(id、Aid、Cid)

表C(id、颜色)

假设表A有:

1、鲍勃 2、蒂姆 3,皮特

表C有:

1、红色 2、蓝色 3、绿色

现在,表B已经完成

1,1,1 2, 1, 2 3,3,2

所以鲍勃最喜欢的颜色是红色和蓝色,而皮特最喜欢的颜色只有蓝色


如何进行查询,以便仅从表A中检索具有最喜欢的红色和蓝色的行。我不想在我的结果集中看到Pete。

您想使用INTERSECT操作符来获取两者都匹配的结果,但是,这只是SQL 2005+

SELECT name FROM TableA
WHERE ID IN (SELECT Aid FROM TableB WHERE CId = 1
             INTERSECT
             SELECT Aid FROM TableB WHERE CId = 2)

幸运的是,我使用的是SQLServer2005。谢谢你,马特!
SELECT sr.receiving_id, sc.collection_id FROM stock_collection as sc, stock_requisation as srq, stock_receiving as sr WHERE (sc.stock_id = '" & strStockID & "' AND sc.datemm_issued = '" & strMM & "' AND sc.qty_issued >= 0 AND sc.collection_id = srq.requisition_id AND srq.active_status = 'Active') OR (sr.stock_id = '" & strStockID & "' AND sr.datemm_received = '" & strMM & "' AND sr.qty_received >= 0)