有乙個表user_book記錄了一名使用者擁有的書籍的資訊,表的資料如下:
key userid bookid
1 1 2
2 1 3
3 1 4
4 2 1
5 2 3
這表明這名使用者1擁有2,3,4三本書,使用者2擁有1,3兩本書,以此類推。
現在要用1個sql語句得到下面問題的結果:
給出任意個bookid,要求找出擁有所給出的所有書籍的使用者。這個看似
簡單的問題卻困擾了我們半天,嘗試了很多次以後,終於想出下面的辦法,
sql語句如下:
select a.user from (
select distinct userid as user,count(distinct bookid) as num
from user_book where bookid in (1,3) group by userid) as a
where a.num=2
這個語句的關鍵之處在於找出使用者所擁有的包含在所要找的bookid中書籍
的數量。where語句中a.num=2中的2就是使用者所要找的書籍的數量。這個數量
如果跟所要找的書籍數量一致,則此使用者滿足條件。
問題得以解決
關於資料庫查詢的乙個問題
今天碰到了乙個資料庫關聯查詢的問題,問題上是這樣的 客戶需要將每個部門下所有的員工學習課程數按降序排列,本來應該是乙個很簡單的問題,但是問題出現了,就是部門是分多級別的,而且學習課程統計裡關聯的只有員工的id,於是我先把對應的幾個大部門從部門表裡抽出來,然後學習課程裡的員工在部門表裡迴圈查詢,結果是...
乙個資料庫儲存過程小問題
這個資料庫建立沒有什麼難度,但是我就是陷入了一種錯誤的思維,一直跳不出來,剛剛靈光一現,跳出迴圈,終於跳出錯誤的模式,構建好了乙個資料庫儲存過程。1 建立乙個儲存過程no grade,顯示有所選課程沒有成績的學生的學號 姓名 所選全部課程名稱及其成績。use stu cou go create pr...
如何用乙個資料庫的資料去更新另乙個資料庫的內容
愚翁 如何用乙個資料庫的資料去更新另乙個資料庫的內容 上次寫了乙個簡單資料庫之間資料交換的程式,但是考慮到如果資料量大的情況,我所使用的 dataadatper dataset 方法,在效能上就有很大的劣勢。不過,要想在資料量大的資料庫之間能高效地交換,就需要捨棄原先的方法,而改用 dbcomman...