2010-02-08 79 views
1

我有一個複雜的查詢,其中包括一些動態的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。

回答

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) 
+0

幸運的是,我使用的是SQL Server 2005的感謝馬特! – nekoian 2010-02-08 16:32:49

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)