表:IP
1 start int 4 1
0 [end] int 4 1
0 country nvarchar 50 1
表:User
1 IP int 4 0
0 UserName varchar 50 1
假设所有字段均不允许为空,start和end表示IP的区间,
现在希望能通过写一条语句,显示出所有用户所处的country,同时显示UserName.
1 start int 4 1
0 [end] int 4 1
0 country nvarchar 50 1
表:User
1 IP int 4 0
0 UserName varchar 50 1
假设所有字段均不允许为空,start和end表示IP的区间,
现在希望能通过写一条语句,显示出所有用户所处的country,同时显示UserName.
from user;
“回复人: bzszp(SongZip) ”都2* 了,别急。
我在实际使用时使用的语句是:
SELECT * FROM User,(select begin,end,country from ip where begin <100000)
IP WHERE (user.Ip BETWEEN ip.begin AND ip.end);但在这里有个麻烦的事情,就是user,(select begin,end,country from ip where begin <100000)
我不得不在from子句中写出
(select begin,end,country from ip where begin <100000),以对存在的区间进行过滤。
我并不希望出现这种情况,希望from中不出现任何有关ip表的信息。
而在where子句和select 子句中,可以出现ip表。
SELECT username, country
FROM User,IP
WHERE (user.Ip BETWEEN ip.begin AND ip.end)
and ip.begin <100000;