一个SQL问题有兴趣的,可以看看。

netkiller
一个SQL问题有兴趣的,可以看看。

[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]select[/color] [color=#0000FF]user[/color][color=#0000CC].[/color]id
[color=#0000FF]user[/color][color=#0000CC].[/color]name[color=#0000CC],[/color]
[color=#0000FF]user[/color][color=#0000CC].[/color]age[color=#0000CC],[/color]
[color=#FF0000]count[/color][color=#0000CC]([/color][color=#0000FF]select[/color] num [color=#0000FF]from[/color] login [color=#0000FF]where[/color] login[color=#0000CC].[/color]user_id[color=#0000CC]=[/color][color=#0000FF]user[/color][color=#0000CC].[/color]id[color=#0000CC])[/color] [color=#0000FF]as[/color] user_count
[color=#0000FF]from[/color] [color=#0000FF]user[/color]
[color=#0000FF]where[/color] user_count [color=#0000CC]>[/color] 10[/color][/font][/td][/tr][/table]



现在要求出 user_count > 10 的,你如何处理??user_count不能直接使用??

下面是我的方法。

[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]select[/color] [color=#0000CC]*[/color] [color=#0000FF]from[/color] [color=#0000CC]([/color]
[color=#0000FF]select[/color] [color=#FF0000]user[/color][color=#0000CC].[/color]id
[color=#FF0000]user[/color][color=#0000CC].[/color]name[color=#0000CC],[/color]
[color=#FF0000]user[/color][color=#0000CC].[/color]age[color=#0000CC],[/color]
[color=#0000FF]count[/color][color=#0000CC]([/color][color=#0000FF]select[/color] num [color=#0000FF]from[/color] login [color=#0000FF]where[/color] login[color=#0000CC].[/color]user_id[color=#0000CC]=[/color][color=#FF0000]user[/color][color=#0000CC].[/color]id[color=#0000CC])[/color] [color=#0000FF]as[/color] user_count
[color=#0000FF]from[/color] [color=#FF0000]user[/color]
[color=#0000CC])[/color] [color=#0000FF]as[/color] new_user

[color=#0000FF]where[/color] new_user[color=#0000CC].[/color]user_count [color=#0000CC]>[/color] 10[/color][/font][/td][/tr][/table]


我的好多sql写法是来自PostgreSQL 我习惯了这种写法。。

[[i] 本帖最后由 netkiller 于 2008-5-30 10:09 编辑 [/i]]

yueliangdao0608
这种还可以,如果要换的话就只能GROUP BY 呢。

netkiller
再问一个问题。

select product .user_id, count(product .id)  from product where count(product .id) > 10 group by product .user_id

目的是取出用户的产品和产品数量。看上面。好像不能运行。我让得PostgreSQL上面我做过类似,是没问题的。

voxxu
select product .user_id, count(product .id)  from product  group by product .user_id having count(product .id) > 10

yueliangdao0608
回复 #3 netkiller 的帖子

[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]select[/color] product [color=#0000CC].[/color]user_id[color=#0000CC],[/color] [color=#0000FF]count[/color][color=#0000CC]([/color]product [color=#0000CC].[/color]id[color=#0000CC])[/color] [color=#0000FF]as[/color] c [color=#0000FF]from[/color] product [color=#0000FF]where[/color] c [color=#0000CC]>[/color] 10 group by product [color=#0000CC].[/color]user_id[/color][/font][/td][/tr][/table]