V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
0x0001
V2EX  ›  问与答

SQL语句求助

  •  
  •   0x0001 · 2013-02-27 16:56:09 +08:00 · 3685 次点击
    这是一个创建于 4286 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现有两个表a,b a表是标准目录,有列s1,s2 b表是具体条目,有好几套以a表为标准的条目,列d1,d2与a表对应 现在任务是根据标准目录a提供的信息找出表b中缺少的条目 更形象点就是a表里规定了一副扑克牌标准,b里保存了好几副,但这几副牌是有缺牌的,现在找出缺牌,并标识是哪副牌少了哪一只。 学得不深入,再次谢过
    6 条回复    1970-01-01 08:00:00 +08:00
    sunlitpalm
        1
    sunlitpalm  
       2013-02-28 03:24:10 +08:00 via iPad
    这周项目加的新功能跟你的要求差不多,找给出没有匹配的列表,比你的复杂点,两表关系是通过第三张表关联起来的。具体字段关系告诉我,给你写个,我用的union
    0x0001
        2
    0x0001  
    OP
       2013-02-28 10:00:31 +08:00
    @sunlitpalm 这两个表的关系就是a表的s1,s2和b表的d1,d2内容一致,两表还有其他内容。
    到电脑时再给感谢,哈哈。
    yyai3
        3
    yyai3  
       2013-02-28 10:33:22 +08:00
    select s1,s2,d1,d2
    from a left join b on a.s1=b.d1 and a.s2=b.d2
    where d1 is null;
    如果说是找扑克牌,暂时想到的是:
    select s1,d1 from a left join b on a.s1=b.d1 where d2=“第一副牌";
    不知道d2 是否可以用来标识是第几副牌~~
    0x0001
        4
    0x0001  
    OP
       2013-02-28 11:10:30 +08:00
    @yyai3 这个我写过了,似乎只要我b表里只要有一副牌是全的,就没结果了…
    sunlitpalm
        5
    sunlitpalm  
       2013-02-28 15:34:38 +08:00
    @0x0001 s1 s2相当于联合主键吗?d1,d2 与 s1,s2对应,那么在b表里怎么区分不同副牌的?
    0x0001
        6
    0x0001  
    OP
       2013-02-28 16:01:19 +08:00
    @sunlitpalm 还有个d3能能区分,结果最好是group by d3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:04 · PVG 04:04 · LAX 12:04 · JFK 15:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.