选择了多个checkboxlist的sql查询

时间:2010-02-08 16:18:09

标签: asp.net sql sql-server

我有一个复杂的查询,其中包含一些动态sql,部分取决于checkboxlist。这是我现在难倒的部分(脑屁?)。

简单示例:

表A(id,name)

表B(id,Aid,Cid)

表C(身份证,颜色)

让我们说表A有:

1,鲍勃 蒂姆 3,皮特

和表C有:

1,红色 2,蓝色 3,绿色

现在表B有

<1,1> 1,1 2,1,2 3,3,2

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

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

2 个答案:

答案 0 :(得分:2)

您希望使用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)

答案 1 :(得分:0)

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)