代码之家  ›  专栏  ›  技术社区  ›  void.pointer

选择所有外键指向特定主键的行?

  •  1
  • void.pointer  · 技术社区  · 14 年前

    我有两张桌子。一个是“用户”表。表中的每一行(用户)都有一个唯一的ID(主键)。

    第二个表是“任务”表。任务表中的每一行都有一个外键,该外键指向拥有该任务的用户(在用户表中)。

    使用SQL Express 2008,必须使用什么查询来获取分配给用户的所有任务的列表?例如,如果用户表中有一个主键为0的用户,而任务表中有10行的外键值为0,则表示该用户分配了10个任务。我需要构建一个从任务表中给出这10行的查询。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Scott Weinstein    14 年前

    如果你有用户pk

    select tasks.*
    from tasks 
    where tasks.UserId = 0
    

    如果你有用户名

    select tasks.*
    from tasks 
    inner join users on users.UserId = tasks.UserId
    where users.UserName =  'Bob'
    
        2
  •  2
  •   JamesMLV    14 年前

    你只是在找一个简单的过滤器吗? 从userid=0的任务中选择*

        3
  •  1
  •   Mark Byers    14 年前

    我认为,如果您知道用户的ID,您可以通过简单的单表选择来实现所需的功能:

    SELECT *
    FROM Tasks
    WHERE user_id = 1234