none
请教一个主从表的查询问题 RRS feed

  • 问题

  • Main 表
    id     name    
    1      老王           
    2      老李


    Detail表
    关联主键
    MID    Type
    1      男
    1      姓王
    1      55岁
    2      姓李
    2      44岁

    写个sql,找出 Main表中的数据 其关联表满足如下所有条件 Detail表中 Type值含有 男 ,姓王 ,55岁的  ,是全部包含以上内容的,不是或,如果输入查询 女, 姓王 ,55岁的 就找不到 main表数据,这样的sql怎么写啊?
    2017年6月21日 13:35

全部回复

  • SELECT   m.Id,m.Name  FROM  Main  m inner join Detail d on m.id=d.mid

    where d.type in (N'男' ,N'姓王',N'55岁')

    不是或,这句话不理解,几行数据之间做过过滤,不能做到"并且" 关系,否则就是找不到数据,或是数据的原因。

    同一行数据,才能做到”并且“关系。 有可能是表结构设计的问题,我认为Detail应该这样设计

    Detail(id int, 主键

       mid int,  主表Main的id

      name nvarchar(40),  --姓王

       gender nvarchar(2) ,--

       age decimal(2,0)  --年龄




    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年6月22日 0:34
  • 你好,

    我建议你可以把你的问题描述的更清楚一点,比如你要查询的结果也可以做一个列表。这样可以更好的帮你解决问题。

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年6月22日 1:49
    版主