回 帖 发 新 帖 刷新版面

主题:高手救命,请教一个SQL语句。

[b]新闻类型表news_type[/b](News_type1的名称不变,另外两个字段的值可能变)

Id(自动编号) News_type1    News_type2
1       美食            0(表示顶级栏目)
2       购物            0
9       商家新闻        1(表示属于美食类)
17       商家新闻        2(表示属于购物类)

[b]新闻信息表news[/b]
(表中newstype1和newstype2分别插入的是news_type表中的news_type2和id的值)

id(自动编号) 题目    Newstype1    Newstype2
2       aaa        1       9
3       bbb        2       17

我怎样写SQL语句才能将NEWS表中第一行(美食类信息)或第二行(购物类信息)选择出来。比如我美食栏目我只显示美食相关的信息。
请问一下这个SQL语句怎样写。我确实想不出来了。
[em10]

回复列表 (共5个回复)

沙发

select * from news where Newstype1=1
这样得到的全是美食类的
你要的是不是这个

板凳

谢谢回复,其实我也这样想过,还是可以。我是怕万一我把news_type那个表的某个信息删除了,他自动编号就变了,还要改代码。我是想在我添加新闻类型的时候名称是不会变的。是不是可以根据类型名称来选取NEWS里面的信息。还有我如果添加一个类型,比如“市场信息”,也是属于“美食”这个大类,但是不是“商家信息”这一类,如果按照刚才呢中写法的话就会把“商家信息”和“市场信息”全部选出来。
哎,如果不行就算了,先那样写吧。

3 楼

select * from news where Newstype1=(select News_type2 from news_type where News_type1='市场信息')

4 楼

好象这个语句不行,要出错.第二个"="那里不能那样写.

5 楼

既然ID会变,那就找出不变的元素,如news_type1,然后把2个表建立关系,最后用个     select ... from news_type inner join news on news_type.news_type1=news.news_type1
如果还想加限制,在在后面补一个 where不就可以了吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册