作者grence (多想两分钟 = =")
看板Database
标题Re: [SQL ] JOIN遇到的问题
时间Tue Jan 6 23:52:58 2009
※ 引述《z77819 (Qoo离开合了)》之铭言:
: 我是用 Microsoft SQL Server 2005,
: 资料库有建两张 Table,
: EIP_Forum_Thread(ThreadID, ForumID, title, ViewCount)
: EIP_Forum_Posts(PostID, ThreadID, body, AddedDate, AddedBy)
: Thread存主题, Posts存回覆的资料
: 我想要做 JOIN 捞出某个版所有主题
: 我的SQL指令
: SELECT DISTINCT EIP_Forum_Posts.ThreadID, EIP_Forum_Thread.title,
: EIP_Forum_Thread.ViewCount, EIP_Forum_Posts.AddedDate,
: EIP_Forum_Posts.AddedBy
: FROM EIP_Forum_Posts INNER JOIN EIP_Forum_Thread ON
: EIP_Forum_Posts.ThreadID = EIP_Forum_Thread.ThreadID
: WHERE (EIP_Forum_Thread.ForumID = @fid)
没有范例资料用猜的:
假设首po的 PostID在同 ThreadID里是最小的
EIP_Forum_Thread 的 key是 ThreadID
EIP_Forum_Posts 的 key是 PostID
翻译成SQL大概是这样:
select *
from EIP_Forum_Thread a
join EIP_Forum_Posts b on a.ThreadID=b.ThreadID
and b.PostID =(
select min(postid)
from EIP_Forum_Posts c
where c.ThreadID=a.ThreadID
)
大概能跑吧....
: 如果文章没人回覆就没有问题,可是有的话就会连回覆的文章标题一起出来
: 请问该怎麽修改OK??
: 一开始是想用Group by去做,可是没办法执行,不过在MY SQL却可以
Group by不是这样用的吧
: 我的SQL指令~
: SELECT *
: FROM EIP_Forum_Posts INNER JOIN EIP_Forum_Thread ON
: EIP_Forum_Posts.ThreadID = EIP_Forum_Thread.ThreadID
: WHERE (EIP_Forum_Thread.ForumID = @fid)
: GROUP BY EIP_Forum_Thread.ThreadID
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.205.173
1F:推 z77819:谢谢你喔 成功显示了 01/09 00:30