问一个数据库设计\查询的典型问题。

现在有一个表,假设为Users表,还有一个Location表。

Users存储用户的基本信息,Location表存储用户的位置。假设Location表有4个字段,LocationID , Province,City,Area。

其中Users里有个locationID的属性。和Location表里的LcaotionID是主外键关联。

  
但是呢 现在还有一些users可能是国外的或者因为其他原因,并不分省-市-区,也就是LocationID为空,

所以在Users里新加一个字段为Location. 存储用户自定义的位置。

换句话说,Location和LocationID 只能有一个并且必须有一个为空值null.


那么,现在搜索所有用户的时候就有个问题,假如我们让Users表和Location表Inner Join起来的话,就会漏掉那些LocationID为空,但是Location不为空的用户。 而且我们想达到的目的就是 如果LocationID不为空,就直接在Lcaotion表里搜索出来它的省-市-区,然后用"xx-yy-zz"这样的形式在GridView表格中显示,如果LocationID为空,则直接显示Location.这样的SQL该如何写,而且高效呢?

作者: indusl   发布时间: 2011-06-16

坐等高手。

作者: indusl   发布时间: 2011-06-16