2009-12-10 68 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匹配。

我怀疑你心中有些复杂,但希望这是正确的轨道。