2009-12-10 199 views
0

我有一個產品表,用戶可以選擇他希望讓他們看到的區域和城市。他可以從下拉菜單中選擇所有地區和所有城市,然後我將把列數設置爲0.高級SQL查詢設計

買家可以選擇他們想從哪個城市觀看產品,以便他們有一個下拉菜單選擇地區和/或城市。他們也可以選擇所有地區和/或城市的產品。

問題是這個高級查詢的樣子。

  1. ,如果賣家點擊一個特定區域,但所有城市,那麼如果買家挑選一個區域,他可以選擇他想要哪個城市。該產品仍將顯示。

  2. 買家可以代替挑選城市挑選所有城市。例如。那麼他會看到所有線索,儘管他們發佈了哪個城市。

我是新來的SQL所以如果你指導我選擇正確的命令,此查詢這將是很好。這對我來說有點複雜,我不知道從哪裏開始。

+0

顯示已用於雙方的代碼 – dusoft 2009-12-10 09:35:19

+1

以及用於產品,地區和城市的表格結構 – baldy 2009-12-10 12:14:50

回答

3

我想我明白你的意思。您的查詢可以有兩個參數,一個用於城市,另一個用於區域。

在城市下拉菜單中,如果用戶選擇了一個城市,比如洛杉磯,那麼@city參數將包含城市(比如說LAX這樣的代碼)。如果他們選擇「All Cities」,那麼@city參數的值將爲NULL。

相同的地區。

然後將查詢可能是這樣的:

SELECT ... 
FROM city_tbl 
INNER join region_tbl ON ... 
WHERE (@city IS NULL or @city = city_tbl.city_code) 
AND (@region IS NULL or @region = region_tbl.region_code) 
AND ... 

所以,如果他們選擇了「所有城市」,@city爲NULL,他們會看到所有的人,否則他們的選擇特定城市的必須與city_tbl.city_code匹配。

我懷疑你心中有些複雜,但希望這是正確的軌道。