我已經創建了3個表格。要被顯示新手需要查詢幫助
tblRegion
---------
RegionID RegionName:
1 Asia --
2 Africa --
3 Europe --
4 America
tblCountries
-------------
CountryID CountryName RegionID:
1 China 1 --
2 Malaysia 1 --
3 Singapore 1 --
4 Afganistan 3 --
5 UK 3 --
6 Spain 3 --
7 Libiya 2 --
8 Morocco 2 --
9 US 4 --
10 Canada 4 --
11 Mexico 4
tblUsrs
-------
UsrID UsrName PrefRegion PrefCountries:
1 Mike 2 -1 --
2 John -1 '1,5,9' --
3 Michael -1, '1' --
4 Tango -1 '8,9'
從上述數據如果用戶通過區域爲2時,兩個用戶ID 1 & 4:在每個表
tblRegion{RegionID as Integer, RegionName as varchar(100)},
tblCountries{CountryID as Integer, CountryName as varchar(100), RegionID as varchar(3)},
tblUsrs{UserID as Integer, UserName as varchar(100), PrefRegion as varchar(3), PrefCountries as varchar(100)}
立即數據。
我寫過查詢,但看起來有些錯誤。
Select *
from tblUsers
where (PrefRegion = '2') or ('2' in (
Select RegionID
from tblCountries, tblUsers
where convert(varchar,tblCountries.CountryID) in (tblUsers.PrefCountries)
)
)
這不起作用 – Learner 2012-01-11 07:44:38
你可以給一些什麼不工作的更多細節? SQL錯誤或不正確的結果集。 – dbrin 2012-01-11 07:48:32
如果您從數據中看到,PrefRegion對於用戶1和用戶4 PrefRegion = -1是2,但PrefCountries具有國家/地區ID8,它又位於區域2下。 – Learner 2012-01-11 07:48:42