SQL如果同时查询3个表查询语句该怎么写?

SELECTTOP5PE_CommonModel.*,PE_U_Article.*,PE_U_Soft.*,PE_U_Photo.*FROMPE_CommonModel,... SELECT TOP 5 PE_CommonModel.*,PE_U_Article.*,PE_U_Soft.*,PE_U_Photo.* FROM PE_CommonModel,PE_U_Article,PE_U_Soft,PE_U_Photo WHERE ((PE_U_Article.FocusNews='True') OR (PE_U_Soft.FocusNews='TRUE') OR (PE_U_Photo.FocusNews='TRUE')) AND (PE_CommonModel.[Status]=99) ORDER BY PE_CommonModel.UpdateTime DESC

上面的语句我说明一下,PE_U_Article/Soft/Photo是一个CMS的3个表
我想→ 只要 Article/Soft/Photo 表下有任何一个 FocusNews为True的时候就输出,该怎么写?上面的表达方法写错了吗?

注:语法是正确的,查询器可以通过,未查询到数据,但在Article下有FocusShow为True的内容

另外,如果不同时查询3个,只查询1个,
SELECT TOP 5 PE_CommonModel.*,PE_U_Article.* FROM PE_CommonModel,PE_U_Article WHERE (PE_U_Article.FocusNews='True') AND (PE_CommonModel.[Status]=99) ORDER BY PE_CommonModel.UpdateTime DESC
可以有输出结果,希望朋友们帮帮忙解答一下.
结构是这样的CommonModel/article/soft/photo是在同一个表下的(同一个节点)article/soft/photo下都有一个FocusNews
而CommonModel下没有
我希望输出 article/soft/photo下FocusNews为True 的前5个

你的方法我去试一下,谢谢你的回答。
展开
 我来答
WHITE_WIN
2008-03-12 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1917万
展开全部
第一:您这是四个表,不是三个表,简化表示吧:
1.CommonModel,2.Article,3.Soft,4.Photo

第二:您没有表明三个表的关系,怎么联接呀?

第三:猜一下您的意思:大概是有三个表的结构相同(有相同的字段),
您是想要三个表中按照时间排序取每个表比较新的五条记录,
第四是个不同结构(不同字段的)的表(COMMONMODEL),但其中一个字段与另三个表的某个字段相同,可根据这个字段查出三个表中字段的类别或属性(比如更新时间),我们假设这个公共字段是NEWSID:

那么就应该是这样一个查询:

select top 5 * from article,commonModel where FocusNews='True' and CommonModel.[Status]=99 and article.newsID=COMMONMODEL.NEWSID union
select top 5 * from SOFT,commonModel where FocusNews='True' and CommonModel.[Status]=99 and SOFT.newsID=COMMONMODEL.NEWSID UNION
select top 5 * from PHOTO,commonModel where FocusNews='True' and CommonModel.[Status]=99 and PHOTO.newsID=COMMONMODEL.NEWSID ORDER BY UPDATETIME DESC
ouyyyang
2008-03-13 · TA获得超过525个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:221万
展开全部
你用的AND表示要3张表都为TRUE,用OR试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式