SQL查询与多个checkboxlist选择

问题描述:

我有一个复杂的查询,其中包括一些动态的SQL部分依赖于checkboxlist。这是我现在难住的部分(脑屁?)。SQL查询与多个checkboxlist选择

简单的例子:

表A(ID,姓名)

表B(ID,援助,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) 
+0

幸运的是,我使用的是SQL Server 2005的感谢马特! – nekoian 2010-02-08 16:32:49

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)