喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [问题] 请教一个联表查询的问题  
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1767
帖子 1369
金钱 1767 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
请教一个联表查询的问题

表A(文章)

aid title ...

表B(评论)cdate为评论时间
cid aid cdate...

两表通过文章的aid关联,查询有最新评论的文章并按评论的时间排序
(一篇文章可能有多个评论,并都比其他的文章要新)

这个SQL该怎么写?
谢谢




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-11-29 03:45 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
小木头
金牌会员
Rank: 6Rank: 6



UID 101302
精华 0
积分 2133
帖子 74
金钱 2133 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2007-11-14
状态 离线
[推荐阅读] 哪个有钱人家给500喜悦币让偶上市啦
你的时间存储格式是什么?时间戳?

SELECT * FROM A as a,B as b ORDER BY cdate DESC WHERE B.aid=A.aid ?
2007-11-29 03:52 PM#2
查看资料  发短消息  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1767
帖子 1369
金钱 1767 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] 不想炒股了,但是我注入的资金切无法一次性提取出来。
Re:小木头
时间可以通过cid排序

我这样写是错误滴

SELECT a.aid,a.title,b.cdate FROM `A` a,`B` b WHERE a.aid = b.aid AND a.aid IN(SELECT distinct(aid) FROM `B` ORDER BY aid DESC LIMIT 8)




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-11-29 03:59 PM#3
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
cgreen
论坛元老
Rank: 8Rank: 8



UID 102321
精华 0
积分 11057
帖子 17
金钱 11057 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2007-11-29
状态 离线
[推荐阅读] 我无语了!恶庄啊恶庄!
aid有重复的记录?
2007-11-29 04:19 PM#4
查看资料  发短消息  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 47788
帖子 1562
金钱 47765 喜悦币
威望 0
人脉 23
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 大连地区急招PHP高级程序员
SELECT
     Distinct
     A.*
FROM
     A LEFT JOIN B ON A.aid = B.aid
ORDER  BY
     cdate DESC




<?wzhu
wzhu.print("This is a wzhu language");
?>
2007-11-29 04:19 PM#5
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1767
帖子 1369
金钱 1767 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] 有劳了,中国石油IPO,等待审批


QUOTE:
原帖由 wzhu 于 2007-11-29 04:19 PM 发表
SELECT
     Distinct
     A.*
FROM
     A LEFT JOIN B ON A.aid = B.aid
ORDER  BY
     cdate DESC
还有一个问题:为什么表B中没有记录,表A中的也会被查询出来?
用left join的时侯是不是无论表B中是否有记录 都会从表A中查询出来

因为我目前表B中的记录只有2条,查询出来却有8条




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-11-29 04:36 PM#6
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1767
帖子 1369
金钱 1767 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] 大概看了下,很多人炒股都是在赔钱


QUOTE:
原帖由 cgreen 于 2007-11-29 04:19 PM 发表
aid有重复的记录?
在评论表B中肯定是有重复的,因为可能多次评论同一篇文章




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-11-29 04:37 PM#7
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
f
注册会员
Rank: 2



UID 98424
精华 0
积分 74
帖子 84
金钱 74 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2007-9-12
状态 离线
[推荐阅读] 喜悦科技回升啦
SELECT a. *
FROM A a
INNER JOIN (
SELECT cid, aid,max( cdate ) AS add_time
FROM B
GROUP BY aid
)b ON a.aid = b.aid
ORDER BY add_time DESC
2007-11-29 04:56 PM#8
查看资料  发短消息  顶部
 
水清无鱼
注册会员
Rank: 2
初级会员



UID 30292
精华 0
积分 182
帖子 489
金钱 182 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-7-23
来自 北京
状态 离线
[推荐阅读] php求职日记
随便说两句:
你在文章表里加一个最后评论时间的字段。添加文章的时候把这个时间初始为添加时间。在添加评论的时候update成评论时间,这样就可以方便的直接读取文章表了。




为地震中的遇难者、受伤者、救援者、捐献者祝福……
2007-11-29 05:50 PM#9
查看资料  访问主页  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025181 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP