假設我有下表。sql如何檢查db中存在的多個數據
鑑於3的用戶名和一個公司的名字,我需要檢查,如果用戶1與給定的公司名稱,用戶2與同一給定的公司名稱和用戶3與同一給定的公司名稱都是在表。如果他們都在桌子上,我的程序就會返回。如果其中一個不在表格中,則返回false。
例如:
給用戶A,B,E和公司沃爾瑪,我的程序應該返回 假。
給出用戶C,D,E和公司的谷歌,我的程序應該返回 爲真。
什麼是最有效的sql來完成它? 我現在所能想到的是,每個用戶都要與給定的公司進行一次檢查。
e.g.
select * from [table] where user = '[given user1]'
and company = '[given company name]'
select * from [table] where user = '[given user2]'
and company = '[given company name]'
select * from [table] where user = '[given user3]'
and company = '[given company name]'
完全我需要訪問數據庫每次檢查3次。我不認爲這是一個好方法。
P.S.我爲此使用SQL SERVER,但我更喜歡使用正常/通用的sql語句,如果可能的話,它可適用於大多數不同的數據庫。 在此先感謝。
大多數SQL服務器產品支持發送一批SQL作爲一個事務,最SQL服務器產品非常有效地編譯和緩存相似的查詢。因此,如果發送三個查詢會導致從長遠角度理解代碼變得更簡單,那麼沒有任何問題。想想下一個人! – TFD 2014-08-28 20:10:16