注册 登录
编程论坛 SQL Server论坛

2表一对多的关系,如何联结查询。。。

yiyaozjk 发布于 2012-11-04 10:42, 526 次点击
   有2表
    A表
    事件ID      事件内容
    xg001        事件2  
    xg002        事件2
 
     B表
    事件ID     每周进展情况
     xg001     第1周打扫
     xg002     第1周开始
     xg001     第2周整理
     xg001     第3周完成


想查询出: 每个事件最新的发展情况
    事件ID      事件内容          每周进展情况(最新)
     xg001        事件1            第3周完成
     xg002        事件2            第1周开始

3 回复
#2
cnfarer2012-11-06 08:24
1.form 子句中用 join
2.where 子句用条件联接
3.子查询
以上三种方式都可以实现
#3
yiyaozjk2012-11-06 13:56
其实我对数据库SQL语句不熟悉的,能否给个直接 的语句,版主能指导方法,能否再给个直接的答案。。。

干脆就在B表 再增加1列
      
    事件ID     周数   每周进展情况
     xg001     1      第1周打扫
     xg002     1      第1周开始
     xg001     2      第2周整理
     xg001     3      第3周完成

想查询出,每个事件最新的发展情况  如下结果:

    事件ID      事件内容          每周进展情况(最新)
     xg001        事件1            第3周完成
     xg002        事件2            第1周开始  
#4
lfylovey2012-11-09 15:47
要查最新的进展情况,必须有个日期,日期最大的就是最新的。
如:
SELECT A.事件ID,A.事件内容,B.每周进展情况
FROM A JOIN B ON(A.事件ID = B.事件ID)
WHERE 日期 IN(SELECT MAX(日期)AS 日期
              FROM 加日期的那个表)
1