2013-09-23 39 views
-1

我知道標題是不清楚,所以讓我解釋一下我的問題:如何根據另一個列表獲取AQL中的結果列表?

讓我們假設我有2個表:

  • 表 「保留」

    number

  • 表「用戶「

    ID | reservationNum

每個客戶都可以有多個預訂。

給客戶ID列表我需要得到屬於他們所有的所有預訂的列表

例如:

  • 客戶1有所保留100,200和300

  • 客戶2已預訂100,200和400

  • 客戶3預訂100,200,300和600

的結果將是{} 100,200

怎麼能做到呢?我需要運行什麼查詢?

+0

最糟糕的方式寫一個問題。請返修 – SriniV

+1

什麼,需要在這裏完成?你有一個完整的桌子設計,還是你期望在這裏得到它?或者您需要建立查詢的幫助?或兩者? – DrCopyPaste

+0

我寫的桌子設計原樣,我需要幫助的查詢 – Dardar

回答

1

我對你的模式等有點不確定,但基本上所有你需要做的就是統計預訂發生在由客戶ID篩選的集合中的次數,然後檢查計數是否等於數量的客戶。

SELECT reservationNum 
FROM Customers 
WHERE Id IN (/* the list of customer ids */) 
GROUP BY reservationNum 
HAVING COUNT(1) = /* count of the list of customer ids */ 
+0

我還提供了一個小提琴,它可以是測試。 http://www.sqlfiddle.com/#!2/5466b9/25 – DrCopyPaste

+0

thx爲答案!你可以解釋一下HAVING COUNT(1)= XXX(在我的例子中是2)的含義是什麼? – Dardar

+0

看看我在評論中提供的最後一個鏈接,在你的情況下,它應該是3,因爲有3個客戶,即客戶表中的預留號本身的計數必須等於客戶ID的不同計數,但是不需要將數字硬編碼到查詢中 – DrCopyPaste

相關問題